2016-12-07 91 views
1

進度條XML是:如何繪製如下圖所示的圓形進度條?

<ProgressBar 
      android:id="@+id/progressBarCircular" 
      style="?android:attr/progressBarStyleHorizontal" 
      android:layout_width="200dp" 
      android:layout_height="200dp" 
      android:layout_alignTop="@id/squareView_3" 
      android:layout_toRightOf="@id/squareView_3" 
      android:layout_marginTop="-105dp" 
      android:layout_marginLeft="40dp" 
      android:indeterminate="false" 
      android:max="100" 
      android:progress="0" 
      android:background="@color/BlackText" 
      android:progressDrawable="@drawable/circular_progressbar" /> 

circular_progressbar.xml是:

<?xml version="1.0" encoding="UTF-8" ?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/background"> 
    <shape 
      android:innerRadiusRatio="3" 
      android:shape="ring" 
      android:thicknessRatio="8.0"> 
     <solid android:color="@color/DarkGrey" /> 
    </shape> 
    </item> 
    <item android:id="@+id/progress"> 
    <shape 
      android:innerRadiusRatio="2.5" 
      android:shape="ring" 
      android:thicknessRatio="12.0"> 
     <solid android:color="@color/green" /> 
    </shape> 
    </item> 
</layer-list> 

和設置進度:

ProgressBar pb = (ProgressBar)view.FindViewById(Resource.Id.progressBarCircular); 
pb.Progress = 75; 

這不是給我的進度條,如下圖所示,如何繪製進度條如下圖:
enter image description here

任何幫助將心懷感激。 Thankyou,快樂編碼。

回答

1

嘗試這種解決方案,我想你會得到你想要的輸出

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@android:id/background"> 
     <shape 
      android:angle="0" 
      android:shape="ring" 
      android:thickness="10dp" 
      android:useLevel="false"> 
      <solid android:color="#eeeeee" /> 
     </shape> 
    </item> 
    <item android:id="@android:id/progress"> 
     <rotate 
      android:fromDegrees="270" 
      android:toDegrees="270"> 
      <shape 
       android:angle="0" 
       android:shape="ring" 
       android:thickness="10dp" 
       android:useLevel="true"> 
       <solid android:color="#81ca33" /> 
      </shape> 
     </rotate> 
    </item> 
</layer-list> 

下面的XML(circular_progressbar.axml),得到圖如圖所示: -

<?xml version="1.0" encoding="UTF-8" ?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/background"> 
    <shape 
      android:shape="ring" 
      android:innerRadius="90dp" 
      android:thickness="10dp" 
      android:useLevel="false"> 
     <solid android:color="#eeeeee" /> 
    </shape> 
    </item> 
    <item android:id="@+id/progress"> 
    <shape 
      android:shape="ring" 
      android:innerRadius="90dp" 
      android:thickness="10dp" 
      android:useLevel="true"> 
     <solid android:color="#81ca33" /> 
    </shape> 
    </item> 
</layer-list> 

而對於旋轉我在ProgressBar視圖中調整屬性爲: -

​​
+0

有沒有辦法設置和更新進度? –

+0

這是您爲進度條設置進度的默認方式。我認爲可繪製本身沒有任何東西。 –

+0

Thankyou @Nigam Patro。你的答案是賴特,但它沒有給出進展(綠圈),如圖所示,需要調整從和到度。答案中的更新部分給出了精確的外觀,如圖片中所示。 @ Nishant Verma最初可以在xml中設置進度,但對於實時進度,您需要以編程方式設置ProgressBar的「進度」屬性。 Thankyou,快樂編碼。 – codemilan