[Android UI] ProgressBar自定義


轉載自:http://gundumw100.iteye.com/blog/1289348

1: 在JAVA代碼中

在java代碼中 ProgressBar      繼承自View, 在android.widegt包中

                 ProgressDialog   繼承自Dialog, 在 android.app包中。

 

2: 在XML文件中

ProgressBar 默認是圓形轉圈。
當為ProgressBar設置style="?android:attr/progressBarStyleHorizontal",后ProgressBar變成水平進度條,可以設置progress 和maxprogress

ProgressBar 在默認情況下,如果設置其它的style:

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>                    中等大小
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>           大
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>           小

a: 通過動畫實現自定義ProgressBar

定義res/anim/loading.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
  xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:duration="150" android:drawable="@drawable/loading_01" />
  <item android:duration="150" android:drawable="@drawable/loading_02" />
  <item android:duration="150" android:drawable="@drawable/loading_03" />
  <item android:duration="150" android:drawable="@drawable/loading_04" />
  <item android:duration="150" android:drawable="@drawable/loading_05" />
  <item android:duration="150" android:drawable="@drawable/loading_06" />
  <item android:duration="150" android:drawable="@drawable/loading_07" />
</animation-list> 

在layout文件中引用如下:

<ProgressBar
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:indeterminate="false" 
  android:indeterminateDrawable="@anim/loading" />


b:通過自定義顏色實現

定義res/drawable/dialog_style_xml_color.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:toDegrees="360" >

    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="8"
        android:useLevel="false" >
        <gradient
            android:centerColor="#FFDC35"
            android:centerY="0.50"
            android:endColor="#CE0000"
            android:startColor="#FFFFFF"
            android:type="sweep"
            android:useLevel="false" />
    </shape>

</rotate>

在layout文件中引用如下:

<ProgressBar
        android:id="@+id/progressBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:indeterminateDrawable="@drawable/dialog_style_xml_color"
        android:indeterminate="false"
android:indeterminateDuration="1000"
android:layout_marginTop="155dp" />

c、使用一張圖片進行自定義

定義res/drawable/dialog_style_xml_icon.xml如下:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <rotate
            android:drawable="@drawable/dx_loading_dialog_rotate_img"
            android:fromDegrees="0.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%"
            android:toDegrees="360.0" />
    </item>

</layer-list>


在layout文件中引用如下:

<ProgressBar
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content"
   android:indeterminate="false" android:indeterminateDrawable="@drawable/dialog_style_xml_icon" />

d: <animated-rotate/>旋轉一張圖片:

res/drawable/custom_progress_draw.xml:

<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/circular"
    android:pivotX="50%"
    android:pivotY="50%" />
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/circular"
    android:pivotX="50%"
    android:pivotY="50%" />

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM