【轉(zhuǎn)載】自定義圓形進(jìn)度條ProgressBar的三種方式

原文章地址 https://liuzhichao.com/p/636.html

進(jìn)度條默認(rèn)是不確定(indeterminate=true)Android進(jìn)度條

Android進(jìn)度條有4種風(fēng)格可以使用。

默認(rèn)值是progressBarStyle。

設(shè)置成progressBarStyleSmall后,圖標(biāo)變小。

設(shè)置成progressBarStyleLarge后,圖標(biāo)變大

設(shè)置成progressBarStyleHorizontal后,變成橫向長(zhǎng)方形。

自定義圓形進(jìn)度條ProgressBar的一般有三種方式:

一、通過動(dòng)畫實(shí)現(xiàn)

定義res/anim/loading_anim.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_blue_16_f0" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f1" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f2" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f3" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f4" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f5" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f6" />
   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f7" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f8" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f9" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f10" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f11" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f12" /> 
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f13" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f14" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f15" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f16" />
  <item android:duration="150" android:drawable="@drawable/loading_blue_16_f17" />
</animation-list>`

在layout文件中引用如下:

<ProgressBar
  android:id="@+id/progressBar1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center_horizontal"
  android:layout_marginBottom="20dip"
  android:layout_marginTop="20dip"
  android:indeterminate="false"
  android:indeterminateDrawable="@anim/loading_anim" />

二、通過自定義顏色實(shí)現(xiàn)

定義res/drawable/loading_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/progressBar2"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:indeterminate="false"
  android:indeterminateDrawable="@drawable/loading_color" />

三、使用一張圖片進(jìn)行自定義

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

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
    <rotate
      android:drawable="@drawable/exchange_loading"
      android:fromDegrees="0.0"
      android:pivotX="50.0%"
      android:pivotY="50.0%"
      android:toDegrees="360.0" />
  </item>
</layer-list>

在layout文件中引用如下:

<ProgressBar
  android:id="@+id/progressBar3"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:indeterminate="false"
  android:indeterminateDrawable="@drawable/lodaing_img"/>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容