android 自定义进度条
2013-08-12 09:39
274 查看
1 定义一个样式
<resources>
<style name="ProgressBar_Mini" parent="@android:style/Widget.ProgressBar.Horizontal">
<item name="android:maxHeight">50dip</item>
<item name="android:minHeight">28dip</item>
<item name="android:indeterminateOnly">false</item>
<item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
<item name="android:progressDrawable">@drawable/progressbar_mini</item>
</style>
</resources>
然后drawable 新建 ProgressBar_Mini 。。代码如下:::
<?xml version="1.0" encoding="utf-8"?>
<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="270"
android:centerY="0.75"
android:endColor="#F5F5F5"
android:startColor="#BEBEBE" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="0dip" />
<gradient
android:angle="270"
android:centerY="0.75"
android:endColor="#165CBC"
android:startColor="#85B0E9" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="270"
android:centerY="0.75"
android:endColor="#165CBC"
android:startColor="#85B0E9" />
</shape>
</clip>
</item>
</layer-list>
然后在布局里 把样式给引进来就可以了
2 是利用图片来自定义
drawable 下新建
<?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/layout_topbar">
</item>
<item
android:id="@android:id/progress"
android:drawable="@drawable/alter_login_pwd">
</item>
</layer-list>
然后在布局制定 :
android:progressDrawable="@drawable/。。。。。" 指定这个属性 ok 就搞定了
1 2都是制作水平进度条
-------------------------------------------------------------------------------------------------------
三、反方向进行滚动:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background" android:drawable="@drawable/progressbar_indeter1">
</item>
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/progressbar_indeter2">
</item>
<item android:id="@android:id/progress" android:drawable="@drawable/progressbar_back">
</item>
</layer-list> 【其中 mCount = 0; 滚动条setProgress(mCount--); 】
四:不定进度的进度条
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/progressbar_indeter1"
android:duration="100" />
<item android:drawable="@drawable/progressbar_indeter2"
android:duration="100" />
<item android:drawable="@drawable/progressbar_indeter3"
android:duration="100" />
</animation-list>
【特殊之处是这个放在android:indeterminateDrawable中】
将android:progressDrawable 属性和style合二为一:
<style name="progressBarHorizontal_color" parent="android:Widget.ProgressBar.Horizontal">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@drawable/progress_color_horizontal</item>
</style>(样式 即 将你组件中的属性值抽出来作为统一使用定义成样式,最后放在style中)
一、通过动画实现
定义res/anim/loading.xml如下:
<?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>
在layout文件中引用如下:
<ProgressBar android:id="@+id/loading_process_dialog_progressBar"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:indeterminate="false" android:indeterminateDrawable="@anim/loading" />
<resources>
<style name="ProgressBar_Mini" parent="@android:style/Widget.ProgressBar.Horizontal">
<item name="android:maxHeight">50dip</item>
<item name="android:minHeight">28dip</item>
<item name="android:indeterminateOnly">false</item>
<item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
<item name="android:progressDrawable">@drawable/progressbar_mini</item>
</style>
</resources>
然后drawable 新建 ProgressBar_Mini 。。代码如下:::
<?xml version="1.0" encoding="utf-8"?>
<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="270"
android:centerY="0.75"
android:endColor="#F5F5F5"
android:startColor="#BEBEBE" />
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="0dip" />
<gradient
android:angle="270"
android:centerY="0.75"
android:endColor="#165CBC"
android:startColor="#85B0E9" />
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:angle="270"
android:centerY="0.75"
android:endColor="#165CBC"
android:startColor="#85B0E9" />
</shape>
</clip>
</item>
</layer-list>
然后在布局里 把样式给引进来就可以了
2 是利用图片来自定义
drawable 下新建
<?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/layout_topbar">
</item>
<item
android:id="@android:id/progress"
android:drawable="@drawable/alter_login_pwd">
</item>
</layer-list>
然后在布局制定 :
android:progressDrawable="@drawable/。。。。。" 指定这个属性 ok 就搞定了
1 2都是制作水平进度条
-------------------------------------------------------------------------------------------------------
三、反方向进行滚动:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background" android:drawable="@drawable/progressbar_indeter1">
</item>
<item android:id="@android:id/secondaryProgress" android:drawable="@drawable/progressbar_indeter2">
</item>
<item android:id="@android:id/progress" android:drawable="@drawable/progressbar_back">
</item>
</layer-list> 【其中 mCount = 0; 滚动条setProgress(mCount--); 】
四:不定进度的进度条
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/progressbar_indeter1"
android:duration="100" />
<item android:drawable="@drawable/progressbar_indeter2"
android:duration="100" />
<item android:drawable="@drawable/progressbar_indeter3"
android:duration="100" />
</animation-list>
【特殊之处是这个放在android:indeterminateDrawable中】
将android:progressDrawable 属性和style合二为一:
<style name="progressBarHorizontal_color" parent="android:Widget.ProgressBar.Horizontal">
<item name="android:indeterminateOnly">false</item>
<item name="android:progressDrawable">@drawable/progress_color_horizontal</item>
</style>(样式 即 将你组件中的属性值抽出来作为统一使用定义成样式,最后放在style中)
一、通过动画实现
定义res/anim/loading.xml如下:
<?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>
在layout文件中引用如下:
<ProgressBar android:id="@+id/loading_process_dialog_progressBar"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:indeterminate="false" android:indeterminateDrawable="@anim/loading" />
相关文章推荐
- android之自定义带文本的圆角进度条
- Android 自定义带进度显示的半圆形进度条ArcTextProgressBar
- Android自定义进度条
- android自定义进度条
- Android 自定义漂亮的圆形进度条
- Android自定义圆形进度条
- Android自定义View-绘制扇形实现圆形进度
- Android 自定义圆形旋转进度条,仿微博头像加载效果
- android_studio的自定义View的圆形进度条
- android自定义渐变进度条
- Android自定义实现圆形播放进度条
- Android自定义圆形进度条
- 我的Android进阶之旅------>Android如何通过自定义SeekBar来实现视频播放进度条
- Android自定义View实现加载进度条效果
- android 自定义ProgressBar 文字跟随进度效果
- Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
- Android 仪表进度条 自定义View
- Android学习记录(九) android通过自定义view画进度。
- android 带百分比的自定义进度条
- android 自定义水平进度条