#android
Есть стандартный SeekBar, при помощи чего его можно "согнуть" под углом? Сам SeekBar
Ответы
Ответ 1
Мне кажется стандартным компонентом не получится. Используйте для этого лучше библиотеку SeekArc. Иконку Солнца как нибудь кастомизируете. А для получения полукруга поиграйтесь с seekarc:startAngle и seekarc:sweepAngle. Думаю получите полукруг таким образом: seekarc:startAngle="90" seekarc:sweepAngle="270"Ответ 2
Вы можете взять код из библиотеки SeekArc и минимально модифицировать его для вашего случая. Библиотека идёт под лицензией MIT, что фактически разрешает Вам делать с кодом что угодно. В файле SeekArc.java есть метод onDraw, который, собственно, и делает всю магию: @Override protected void onDraw(Canvas canvas) { if(!mClockwise) { canvas.scale(-1, 1, mArcRect.centerX(), mArcRect.centerY() ); } // Draw the arcs final int arcStart = mStartAngle + mAngleOffset + mRotation; final int arcSweep = mSweepAngle; canvas.drawArc(mArcRect, arcStart, arcSweep, false, mArcPaint); canvas.drawArc(mArcRect, arcStart, mProgressSweep, false, mProgressPaint); if(mEnabled) { // Draw the thumb nail canvas.translate(mTranslateX - mThumbXPos, mTranslateY - mThumbYPos); mThumb.draw(canvas); } } В качестве mThumb установите drawable вашего солнышка. mArcPaint -- это как раз то, что вам нужно поменять используя метод setPathEffect. Здесь есть пример, где используются пунктирные линии для прямой и произвольной ломаной (более чистый пример создания объекта Paint есть также тут). В данном случае Вы так же можете применить DashPathEffect к объекту mArcPaint для рисования кривой методом drawArc. Вероятно, Вам так же потребуется удалить строку, которая рисует прогресс: canvas.drawArc(mArcRect, arcStart, mProgressSweep, false, mProgressPaint); Просто добавьте файл в Ваш проект и внесите нужные изменения.Ответ 3
Привет. Если вы хотите создать такой SeekBar (звезда + орбита) то у вас ничего не выйдет. Вам нужно создавать кастомный элемент и на нем самостоятельно менять местоположение звезды в зависимости от значений.
Комментариев нет:
Отправить комментарий