zoukankan      html  css  js  c++  java
  • 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来定义,包括圆角,粗细等

  • 相关阅读:
    C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的计算
    配置tomcat
    C# 动态编译及反射执行
    数据库日志自增量太大导致超时
    validateRequest验证引发错误“检测到有潜在危险的 Request.Form 值”
    入手了DELL Ultrabook,还不错哦!
    Spring.NET学习笔记1——控制反转(基础篇)
    Win7 64位下Kindle4、闪迪Cruzer BladeU盘等无法安装驱动问题的解决方法
    转:CentOS 5.5下LVM分区在线扩容
    [转]关于64位Sublime Text 2破解注册码的方法
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_progressbar_150504224.html
Copyright © 2011-2022 走看看