Как загрузить данные JSON, чтобы использовать их с плагином select2

Я столкнулся с той же проблемой и не нашел подходящего решения для моего дела, поэтому решил пойти другим путем. Я создал пользовательский класс drawable. В этом классе я создал 2 Paints для линии прогресса и фоновой линии (с некоторым большим штрихом). Прежде всего установите startAngle и sweepAngle в конструкторе:

    mSweepAngle = 0;
    mStartAngle = 270;

Вот метод onDraw этого класса:

@Override
public void draw(Canvas canvas) {
    // draw background line
    canvas.drawArc(mRectF, 0, 360, false, mPaintBackground);
    // draw progress line
    canvas.drawArc(mRectF, mStartAngle, mSweepAngle, false, mPaintProgress);
}

Итак, теперь все, что вам нужно сделать, backgorund of view, в фоновом изменении потока sweepAngle:

mSweepAngle += 360 / totalTimerTime // this is mStep

и непосредственно вызывать InvalidateSelf () с некоторым интервалом (например, каждые 1 секунду или чаще, если вы хотите добиться плавного изменения хода) на представлении, которое сделайте это возможным в качестве фона. Вот оно!

P.S. Я знаю, я знаю ... конечно, вы хотите еще немного кода. Итак, вот весь поток:

  1. Создать представление XML:
     <View
     android:id="@+id/timer"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
    
  2. Создать и настроить пользовательский класс Drawable (как описано выше). Не забудьте настроить Краски для линий. Здесь краска для строки прогресса:
    mPaintProgress = new Paint();
    mPaintProgress.setAntiAlias(true);
    mPaintProgress.setStyle(Paint.Style.STROKE);
    mPaintProgress.setStrokeWidth(widthProgress);
    mPaintProgress.setStrokeCap(Paint.Cap.ROUND);
    mPaintProgress.setColor(colorThatYouWant);
    

То же самое для красок backgroung (установите ширину немного больше, если хотите)

  1. В методе создания класса drawable для обновления (Шаг расчета, описанный выше)
    public void update() {
        mSweepAngle += mStep;
        invalidateSelf();
    }
    
  2. Установите этот класс drawable в YourTimerView (я сделал это во время выполнения) - просмотр с @ + id / timer из xml выше: OurSuperDrawableClass superDrawable = new OurSuperDrawableClass(); YourTimerView.setBackgroundDrawable(superDrawable);
  3. Создайте фоновый поток с просмотром runnable и update:
    YourTimerView.post(new Runnable() {
        @Override
        public void run() {
            // update progress view
            superDrawable.update();
        }
    });
    

Вот оно! Наслаждайтесь прохладным индикатором хода. Вот скриншот результата, если вам слишком скучно от этого количества текста. enter image description here [/g0]

13
задан Artur Filipiak 5 February 2015 в 22:36
поделиться