2013-08-28 44 views
1

當我試圖實現進度條時。我遇到了git hub應用程序 ,它實現了神話般的進度條微調器。我只是好奇他們是如何做到的。 他們如何在應用程序中調用微調器這樣的方式活動UI加載的其他部分,但是 活動的一部分,即從服務器中一個可能提取的部分顯示微調器。 由於Git hubis開源軟件,我能夠瀏覽代碼。但是我不可能說得太多。Git Hub應用程序的進度條如何實現

GiHub App Source Code 任何知道他們如何實施進度條的人。

回答

1

它是一個定製樣式的常規ProgressBar。例如。

https://github.com/github/android/blob/master/app/res/layout/progress_dialog.xml

<ProgressBar 
    android:id="@+id/pb_loading" 
    style="@style/Spinner" 
    android:layout_width="48dp" 
    android:layout_height="48dp" /> 

定義它應該使用其被定義爲

https://github.com/github/android/blob/master/app/res/values/styles.xml

<style name="Spinner"> 
    <item name="android:indeterminate">true</item> 
    <item name="android:indeterminateDrawable">@drawable/spinner</item> 
    <item name="android:indeterminateDuration">2000</item> 
    <item name="android:indeterminateOnly">true</item> 
</style> 

即風格定義要使用一個自定義的可繪製的,其被定義爲所述Spinner風格兩部分LayerList

https://github.com/github/android/blob/master/app/res/drawable/spinner.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item android:drawable="@drawable/spinner_inner"/> 
    <item> 
     <rotate 
      android:fromDegrees="0" 
      android:interpolator="@android:anim/linear_interpolator" 
      android:pivotX="50%" 
      android:pivotY="50%" 
      android:toDegrees="360" > 
      <bitmap 
       android:antialias="true" 
       android:filter="true" 
       android:src="@drawable/spinner_outer" /> 
     </rotate> 
    </item> 

</layer-list> 

inner image是貓標誌,它被設置爲旋轉360°爲虛線圓的outer images

+0

非常感謝zapl :)!我也找到了這個信息,以及他們如何在應用中調用微調器,這樣活動用戶界面加載的其他部分,但活動的一部分,即從服務器提取的一個概要顯示微調器。 –

+0

我現在編輯了我的問題:) –