欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android自定义view实现进度条指示效果

程序员文章站 2023-12-21 21:04:22
先看看效果图: 首先是布局文件

先看看效果图:

Android自定义view实现进度条指示效果

首先是布局文件

<framelayout
 android:layout_width="match_parent"
 android:layout_marginleft="10dp"
 android:layout_marginright="10dp"
 android:layout_height="wrap_content">

 <progressbar
  android:id="@+id/pb_process"
  style="@style/progressstyle"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:indeterminate="false" />

 <textview
  android:id="@+id/tv_progress"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_gravity="center"
  android:textcolor="@color/white"/>

</framelayout>

添加style-progressstyle

<style name="trainprogressstyle" parent="@android:style/widget.progressbar.horizontal">
 <item name="android:progressdrawable">@drawable/my_progress</item>
</style>

添加drawable-my_progress

<?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>
   <corners android:radius="5dip" />
   <gradient
    android:angle="270"

    android:centery="0.75"
    android:endcolor="@color/gray_bb"
    android:startcolor="@color/gray_bb" />
  </shape>
 </item>

 <item android:id="@android:id/secondaryprogress">
  <clip>
   <shape>
    <corners android:radius="5dip" />
    <gradient
     android:angle="270"
     android:centercolor="#f69200"
     android:centery="0.75"
     android:endcolor="#ff9800"
     android:startcolor="#ff9800" />
   </shape>
  </clip>
 </item>

 <item android:id="@android:id/progress">
  <level-list>
   <!-- 进度满时 level = 10000-->
   <item
    android:maxlevel="10000"
    android:minlevel="10000">
    <clip>
     <shape>
      <corners android:radius="5dip" />
      <gradient
       android:angle="270"
       android:centercolor="#21a837"
       android:centery="0.75"
       android:endcolor="#22ac38"
       android:startcolor="#22ac38" />
     </shape>
    </clip>
   </item>
   <!-- 进度未满时 level < 10000-->
   <item
    android:minlevel="0"
    android:maxlevel="9999"
    >
    <clip>
     <shape>
      <corners android:radius="5dip" />
      <gradient
       android:angle="270"
       android:centercolor="#f69200"
       android:centery="0.75"
       android:endcolor="#ff9800"
       android:startcolor="#ff9800" />
     </shape>
    </clip>
   </item>
  </level-list>
 </item>

</layer-list>

activity里的使用和安卓默认的一样

pb_progress.setmax();
pb_progress.setprogress();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: