Android UI:ProgressBar 自定义进度条样式

  以水平方向进度条为例,介绍如何自定义进度条。

  1.在drawable文件夹下建立自己的进度条模版,右键drawable→new→Android XML file→layer list→自己起个名字(如progressBar_horizontal_1)

代码如下

<?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="8.0dip" />
            <!-- 填充的颜色,颜色为自定义 --> 
            <solid android:color="@color/white" /> 
        </shape>
    </item>
    
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="8.0dip" />
                <!-- <gradient 
                    android:startColor="@color/black" 
                    android:endColor="@color/blue"
                    android:centerColor="@color/lightbule" 
                    android:angle="270.0" /> -->
                <!-- 填充的颜色 --> 
                <solid android:color="@color/blue" /> 
            </shape>
        </clip>
    </item>
</layer-list>

  2.右键Value文件夹→new→Android XML file→resources→自己起个名字(如mprogressBar1)

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="mProgressBar1">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:progressDrawable">@drawable/progress_bar_horizontal1</item><!-- progress_horizontal -->
        <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
        <item name="android:minHeight">20dip</item> <!--设置进度条的高度 --> 
     <item name="android:maxHeight">20dip</item>
  </style>
</resources>

  3.在layout.xml文件里快乐的使用自己做的进度条,代码如下:

    <ProgressBar
        android:id="@+id/M_progressBar"
        style="@style/mProgress_horizontal1"
        android:layout_width="200dip"
        android:layout_height="wrap_content"
        android:max="100" <!-- 进度条的最大值 -->
        android:progress="10"<!-- 进度条的目前 -->
        android:secondaryProgress="20" />

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。