ProgressBar自定义样式中的层叠图片显示问题

来源:互联网 发布:交大知行大厦附近租房 编辑:程序博客网 时间:2024/04/29 17:40
android系统自带的那个progressbar比较戳,开发都会重新定义。

先看下效果:

肿么杨啊,比系统的好看多了吧

progressbar:

[html] view plaincopy
  1. <ProgressBar  
  2.             android:id="@+id/downloadbar"     
  3.             android:layout_width="fill_parent"  
  4.             android:layout_height="10dip"  
  5.             style="?android:attr/progressBarStyleHorizontal"  
  6.             android:progressDrawable="@drawable/progressbar_layer_list"  
  7.             android:background="@drawable/progressbar_box"  
  8.         />       

其中的progressbar_layer_list

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
  3.     <item android:id="@android:id/background">  
  4.         <clip>  
  5.             <shape>  
  6.                 <corners android:radius="15dip" />  
  7.                 <gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.75"/>  
  8.             </shape>  
  9.         </clip>  
  10.     </item>  
  11.     <item android:id="@android:id/secondaryProgress">  
  12.         <clip>  
  13.             <shape>  
  14.                 <corners android:radius="15dip" />  
  15.                 <gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.75"/>  
  16.             </shape>  
  17.         </clip>  
  18.     </item>  
  19.       
  20.     <item android:id="@android:id/progress">  
  21.         <clip>  
  22.             <shape>  
  23.                 <gradient android:startColor="#00b7ee" android:endColor="#0075a9" android:angle="270" android:centerY="0.25"/>  
  24.                 <corners android:radius="15dip"/>  
  25.             </shape>  
  26.         </clip>  
  27.     </item>  
  28. </layer-list>  
background图片:


如果需要图片作为背景的话:

[java] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <item  
  5.         android:id="@android:id/background"  
  6.         android:drawable="@drawable/loading_bg"/>  
  7.   
  8.     <item  
  9.         android:id="@android:id/progress">  
  10.           <clip  
  11.             android:clipOrientation="horizontal"  
  12.             android:drawable="@drawable/loading_line"  
  13.             android:gravity="left" >  
  14.         </clip>  
  15.     </item>  
  16.   
  17.     <!-- <item android:id="@android:id/progress"> -->  
  18.     <!-- <clip > -->  
  19.     <!-- <shape > -->  
  20.     <!-- <corners android:radius="8dip" /> -->  
  21.     <!-- <gradient -->  
  22.     <!-- android:angle="270" -->  
  23.     <!-- android:endColor="#111111" -->  
  24.     <!-- android:startColor="#FFFFFF" /> -->  
  25.     <!-- </shape> -->  
  26.     <!-- </clip> -->  
  27.     <!-- </item> -->  
  28.   
  29. </layer-list>  

这里注意,名字必须按照  “@android:id/backgroud”  “@android:id/secondaryProgress”  “@android:id/progress”三种形式来写;

这样就可以自动的增加进度条量了。c

clip 这个属性需要加上,否则显示会不正常。


======================================================================================================


安卓系统提供了水平进度条ProgressBar的样式,而我们在实际开发中,几乎不可能使用默认的样式,原因就是“太丑”^_^

所以我们在更多的时候需要对其颜色进行自定义,主要使用就是自定义样式文件。


再在drawable目录下新增progressbar.xml文件,可以设置默认背景色和进度条的颜色

(值得一提的是支持渐变色)

代码:

<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="0"
                android:centerColor="#ff5a5d5a"
                android:centerY="0.75"
                android:endColor="#ff747674"
                android:startColor="#ff9d9e9d" />
        </shape>
    </item>

    <item android:id="@android:id/secondaryProgress">

        <clip>

            <shape>

                <corners android:radius="5dip" />

                <gradient
                    android:angle="0"
                    android:centerColor="#80ffb600"
                    android:centerY="0.75"
                    android:endColor="#a0ffcb00"
                    android:startColor="#80ffd300" />
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">

        <clip>

            <shape>

                <corners android:radius="5dip" />

                <gradient
                    android:angle="0"
                    android:endColor="#8000ff00"
                    android:startColor="#80ff0000" />
            </shape>
        </clip>
    </item>

</layer-list>

布局文件定义如下:


           
            <ProgressBar
                android:id="@+id/progressBar"
                style="?android:attr/progressBarStyleHorizontal"
                android:layout_width="fill_parent"
                android:layout_height="7.5dp"
                android:max="100"
                android:progress="80"
                android:layout_marginRight="8dp"
                android:progressDrawable="@drawable/progressbar"
                android:visibility="visible"/>



0 0
原创粉丝点击