Android-круг для рисования с широкой дугой - PullRequest
4 голосов
/ 15 февраля 2012

Я пытаюсь нарисовать что-то похожее на индикатор выполнения.Однако в моем случае индикатор выполнения - это круг с широкой дугой другого цвета, как показано ниже (на рисунке 2 показан снимок дизайна с некоторым прогрессом, отмеченным желтым цветом).Как только работа будет завершена, весь круг станет желтым.

enter image description here

Чтобы сделать это, я хотел бы создать круг, используя макет XML, и я могу сделать это с помощью следующихкод:

В res / drawable / circle.xml

<solid android:color="@color/red" />

<size
    android:height="200dp"
    android:width="200dp" />

<padding
    android:bottom="10dp"
    android:left="10dp"
    android:right="10dp"
    android:top="10dp" />

В моем основном макете я просто установил это как фон дляframelayout ...

   <FrameLayout
       android:id="@+id/frameLayout"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@drawable/circle" >

   </FrameLayout>

</LinearLayout>

Я знаю, как рисовать дуги, используя пример, приведенный в демонстрационном коде Android на http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Arcs.html

Я немного борюсь за то, как объединить эти два для созданиябыстрое движение.Я знаю, что мы должны создать нить и создать onDraw, как в демоверсии, но как мне установить центр широкой дуги в центре нарисованного круга?И как будет выглядеть код Java (в упражнении)?Thanx!

Ответы [ 2 ]

3 голосов
/ 27 ноября 2012

Вместо создания круга с помощью фигуры один раз пройдите по этой ссылке.

http://code.google.com/p/afreechart/

Надеюсь, это поможет вам.

2 голосов
/ 16 февраля 2012

Я решил пойти с решением, как указано в демонстрации, которую я упоминал ранее. Я создал собственный вид для представления широкой дуги. Я поместил это в коде (как показано на рисунке)

    <LinearLayout
       ...>

        <com.example.SweepingArcView
            android:id="@+id/sweepingArc"
            android:layout_width="210dp"
            android:layout_height="210dp"
            android:layout_marginTop="20dp"
            android:layout_weight="1" />

       ...
    </LinearLayout>

Затем я рисую дугу, как показано в демонстрационном коде. Спасибо всем, кто откликнулся!

...