2015-06-13 167 views
2

我想創建一個圓形邊的圓形ProgressBar。我曾嘗試CircleProgress庫這裏舉辦圓形進度條中的圓形邊Android

https://github.com/lzyzsd/CircleProgress

但DonutProgress不具有圓形邊緣,我想。但與我的自定義progreesDrawable我也無法實現它。

我想設計進度條如下圖所示

enter image description here

一角四捨五入標記的圖片。

我custom_progress_bar.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item android:id="@android:id/progress"> 
     <rotate 
      android:fromDegrees="90" 
      android:toDegrees="90" 
      android:pivotX="50%" 
      android:pivotY="50%" > 
      <shape 
       android:innerRadiusRatio="2.5" 
       android:shape="ring" 
       android:thicknessRatio="15.0" > 

       <corners 
        android:radius="5dp" 
        android:topRightRadius="5dp" 
        android:topLeftRadius="5dp" 
        /> 

       <gradient 
        android:centerColor="#8AFF00" 
        android:endColor="#006554" 
        android:startColor="#006554" 
        android:type="sweep" /> 


      </shape> 


     </rotate> 
    </item> 

</layer-list> 

我的佈局文件

<RootLayout...> 

<ProgressBar 
     style="?android:attr/progressBarStyleHorizontal" 
     android:layout_width="152dp" 
     android:layout_height="152dp" 
     android:layout_centerInParent="true" 
     android:progress="100" 

     android:indeterminate="false" 
     android:progressDrawable="@drawable/back_progress" /> 
    <ProgressBar 
    android:id="@+id/progressWheel" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:layout_width="152dp" 
    android:layout_height="152dp" 
    android:layout_centerInParent="true" 
    android:progress="90" 

    android:indeterminate="false" 
    android:progressDrawable="@drawable/circular_progress_bar" /> 

    </RootLayout...> 

而且我不得不用兩個進度條相互重疊僅僅是實現後臺的東西(灰色)。我試圖在我的custom_progress_bar.xml中定義背景形狀,但它不起作用,所以我必須這樣做。我知道它不是解決方案,但我無法通過其他方式實現。

任何人都可以幫助我以更好的方式設計這個進度條圓邊。

+0

實現這些結果的最佳方法是創建您自己的自定義drawable。使用一個路徑來創建主要的「弧」和一個普通的'drawCircle'來創建圓角邊緣 – Budius

+0

謝謝@Budius,請給出任何參考或位代碼示例,因爲我沒有太多處理drawable的經驗Android系統。 – pyus13

+0

@Budius你能幫忙嗎? – pyus13

回答

1

我對晚會有點遲到,但是我在castorflex的smoothProgressBar的fork中添加的代碼可以創建您所描述的進度條!圖書館已經有了圓潤的進度條,我和一個朋友(向Ryan大喊)能夠很好地使用漸變效果。 https://github.com/alex-sanchez-sd/SmoothProgressBar