2012-02-14 135 views
3

我想繪製類似於進度條的東西。但是,就我而言,進度條是具有不同顏色的掃掠弧的圓,如下所示(圖2顯示了設計的快照,其中黃色表示了一些進度)。一旦工作完成,整個圓圈就會變黃。安卓繪製的圓弧與清掃弧線

enter image description here

爲了這一點,我想使用XML佈局創建一個圓,我能夠做到這一點與下面的代碼:

在res /繪製/ 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> 

我知道如何在http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/Arcs.html

我畫在使用Android的演示代碼給出的例子弧在如何將這兩者結合起來以創造一個清晰的動作方面掙扎了一下。我知道我們必須創建一個線程並創建一個像演示中的那樣的onDraw - 但是如何將清掃的圓弧中心設置在繪製的圓心? java代碼看起來如何(在activity中)?感謝名單!

+0

我想你可能只需要創建一個處理動畫的自定義視圖。好的一面,它不應該太糟糕。 – AedonEtLIRA 2012-02-14 22:32:32

+0

我明白了,我知道如何做到這一點基於演示。我希望我可以在xml中創建整個佈局,然後在代碼中添加「清掃」弧部分。如果我們可以將自定義視圖放入已定義的佈局,這將是可能的。 – serverman 2012-02-14 22:35:04

+0

你可以。看看http://developer.android.com/guide/topics/ui/custom-components.html#modifying – AedonEtLIRA 2012-02-14 22:37:48

回答

2

我決定採用前面提到的演示中給出的解決方案。我創建了一個自定義視圖來表示掃描弧線。我把它放在代碼中(只是相關代碼顯示)

<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> 

然後我畫出了演示代碼中給出的掃描弧。感謝所有回覆的人!

+0

你應該標記自己的答案是正確的 – gian1200 2013-12-27 23:10:56