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来定义,包括圆角,粗细等

  • 相关阅读:
    SQL数据类型详解
    将Excel表格导入DataTable的方法
    .net的反射机制
    经典SQL语句大全(一)
    c# Invoke和BeginInvoke 区别
    c#中两种常用的异步调用方法
    SQL存储过程参数问题
    API 函数大全(下)
    API函数大全 (上)
    javascript 常用function
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_progressbar_150504224.html
Copyright © 2011-2022 走看看