首页 > 其他 > 详细

自定义进度条Progressbar

时间:2014-03-30 11:13:26      阅读:520      评论:0      收藏:0      [点我收藏+]

 

 

2种进度条 水平和圆形

bubuko.com,布布扣bubuko.com,布布扣

水平定义为:

bubuko.com,布布扣
  <ProgressBar android:id="@+id/pb"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
bubuko.com,布布扣

圆形定义为:3种不同大小

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>

bubuko.com,布布扣
  <ProgressBar 
        style="@android:style/Widget.ProgressBar.Small.Inverse"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
bubuko.com,布布扣

查看android关于进度条的源代码如下:

bubuko.com,布布扣
<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>
bubuko.com,布布扣

开始改造

一、通过动画实现
定义res/anim/loading.xml如下: 

bubuko.com,布布扣
<?xml version="1.0" encoding="UTF-8"?> 
<animation-list android:oneshot="false" 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:duration="150" android:drawable="@drawable/loading_01" /> 
<item android:duration="150" android:drawable="@drawable/loading_02" /> 
<item android:duration="150" android:drawable="@drawable/loading_03" /> 
<item android:duration="150" android:drawable="@drawable/loading_04" /> 
<item android:duration="150" android:drawable="@drawable/loading_05" /> 
<item android:duration="150" android:drawable="@drawable/loading_06" /> 
<item android:duration="150" android:drawable="@drawable/loading_07" /> 
</animation-list> 
bubuko.com,布布扣


在layout文件中引用如下: 

bubuko.com,布布扣
<ProgressBar 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:indeterminate="false" 
android:indeterminateDrawable="@anim/loading" />
bubuko.com,布布扣

二、通过自定义颜色实现
定义res/drawable/dialog_style_xml_color.xml如下:
Xml代码

bubuko.com,布布扣
<?xml version="1.0" encoding="utf-8"?> 
<rotate xmlns:android="http://schemas.android.com/apk/res/android" 
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" 
android:toDegrees="360"> 
<shape android:shape="ring" android:innerRadiusRatio="3" 
android:thicknessRatio="8" android:useLevel="false"> 
<gradient android:type="sweep" android:useLevel="false" 
android:startColor="#FFFFFF" android:centerColor="#FFDC35" 
android:centerY="0.50" android:endColor="#CE0000" /> 
</shape> 
</rotate> 
bubuko.com,布布扣


在layout文件中引用如下:
Xml代码

bubuko.com,布布扣
<ProgressBar 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:indeterminate="false" 
android:indeterminateDrawable="@drawable/dialog_style_xml_color" />
bubuko.com,布布扣

三、使用一张图片进行自定义
定义res/drawable/dialog_style_xml_icon.xml如下:
Xml代码

bubuko.com,布布扣
<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
<rotate android:drawable="@drawable/dialog_progress_round" 
android:fromDegrees="0.0" 
android:toDegrees="360.0" 
android:pivotX="50.0%" 
android:pivotY="50.0%" /> 
</item> 
</layer-list> 
bubuko.com,布布扣


在layout文件中引用如下:
Xml代码

bubuko.com,布布扣
<ProgressBar 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:indeterminate="false" 
android:indeterminateDrawable
="@drawable/dialog_style_xml_icon" />
bubuko.com,布布扣


或者使用<animated-rotate/>旋转一张图片:
Xml代码

bubuko.com,布布扣
<ProgressBar 
style="@android:style/Widget.ProgressBar" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:indeterminateDrawable="@drawable/custom_progress_draw" 
android:indeterminate="false" /> 
bubuko.com,布布扣


custom_progress_draw.xml: 
circular就是一张转动效果的静态图片。

bubuko.com,布布扣
<?xml version="1.0" encoding="utf-8"?> 
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" 
android:drawable="@drawable/circular" 
android:pivotX="50%" 
android:pivotY="50%" /> 
bubuko.com,布布扣

自定义个性垂直进度条

bubuko.com,布布扣

准备图片:

bubuko.com,布布扣

bubuko.com,布布扣

progress_vertical.xml: 

bubuko.com,布布扣
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">    
    <item android:id="@android:id/progress"  > 
        <clip android:clipOrientation="vertical" 
            android:gravity = "bottom"
            android:drawable="@drawable/y2"
            >         
        </clip> 
    </item>     
</layer-list>
bubuko.com,布布扣

引用:

bubuko.com,布布扣
    <ProgressBar android:id="@+id/pb"
        style="?android:attr/progressBarStyleHorizontal"
        android:background="@drawable/y1"
        android:progressDrawable="@drawable/progress_vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
bubuko.com,布布扣

案例:

bubuko.com,布布扣

http://pan.baidu.com/s/1i3snQdB

自定义弧形进度条

bubuko.com,布布扣

http://pan.baidu.com/s/1o6nZV3G

自定义进度条Progressbar,布布扣,bubuko.com

自定义进度条Progressbar

原文:http://www.cnblogs.com/clarence/p/3633106.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!