progerssbar-style 属性分析

先看如下代码

   <ProgressBar android:id="@+id/stateProgressBar"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:max="100"
            android:progress="10"
            android:secondaryProgress="50" 
            android:layout_marginTop="4dip"
            style="@style/play_ProgressBar"/>

style的代码如下

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"
            android:drawable="@drawable/scrubber_bg_funui" />
    <item android:id="@android:id/secondaryProgress">
        <scale android:scaleWidth="100%"
               android:drawable="@drawable/scrubber_secondary_funui" />
    </item>
    <item android:id="@android:id/progress">
        <scale android:scaleWidth="100%"
               android:drawable="@drawable/scrubber_primary_funui" />
    </item>
</layer-list>

里面用到的颜色值如下

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <drawable name="scrubber_bg_funui">#0000ff</drawable>
    <drawable name="scrubber_secondary_funui">#ff0000</drawable>
    <drawable name="scrubber_primary_funui">#00000000</drawable>
</resources>

运行结果如下

 

当我们进一步做如下更改的时候

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <drawable name="progress_bg_holo_dark">#0000ff</drawable> 
   <drawable name="progress_secondary_holo_dark">#ff0000</drawable> 
   <drawable name="progress_primary_holo_dark">#000000</drawable> 
</resources>

结果如下

从上图我们可以得出结论

progressbar的三个drawable变量分别为

1.@android:id/background 对应的就是进度条最底部的颜色

2.@android:id/secondaryProgress 对应的是中间层的进度条颜色

3.@android:id/progress 对应的是最上层进度条行进颜色

我们在看一下scale android:scaleWidth="100%" 的效果

代码更改如下

<?xml version="1.0" encoding="utf-8"?>


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

    <item android:id="@android:id/background"
          android:drawable="@drawable/progress_bg_holo_dark" />

    <item android:id="@android:id/secondaryProgress">
        <scale android:scaleWidth="10%"
               android:drawable="@drawable/progress_secondary_holo_dark" />
    </item>

    <item android:id="@android:id/progress">
        <scale android:scaleWidth="200%"
               android:drawable="@drawable/progress_primary_holo_dark" />
    </item>

</layer-list>

对应结果如下

似乎还看不出有什么特点,以后用到在进行验证

其实,看网上所给的style,它的实现方法非常丰富。如下

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
      
     <item android:id="@android:id/background">  
         <shape>  
             <corners android:radius="5dip" />  
             <gradient  
                     android:startColor="#ff9d9e9d"  
                     android:centerColor="#ff5a5d5a"  
                     android:centerY="0.75"  
                     android:endColor="#ff747674"  
                     android:angle="270"  
             />  
         </shape>  
     </item>  
      
     <item android:id="@android:id/secondaryProgress">  
         <clip>  
             <shape>  
                 <corners android:radius="5dip" />  
                 <gradient  
                         android:startColor="#80ffd300"  
                         android:centerColor="#80ffb600"  
                         android:centerY="0.75"  
                         android:endColor="#a0ffcb00"  
                         android:angle="270"  
                 />  
             </shape>  
         </clip>  
     </item>  
      
     <item android:id="@android:id/progress">  
         <clip>  
             <shape>  
                 <corners android:radius="5dip" />  
                 <gradient  
                         android:startColor="#ffffd300"  
                         android:centerColor="#ffffb600"  
                         android:centerY="0.75"  
                         android:endColor="#ffffcb00"  
                         android:angle="270"  
                 />  
             </shape>  
         </clip>  
     </item>  
      
 </layer-list>  

也就是,它每一个itme都可以使用一个shape来定义,包括圆角,粗细等

原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_progressbar_150504224.html