由于项目需要,需要实现一个两头椭圆形状的progressBar 。一开始接到这个任务的时候觉得很简单。但是后来还是折腾了好久才出来。先贴上效果图吧。
我想这里还是懒得罗嗦了直接写实现方式吧。
1. 首先这里需要两张原型的图片。一张蓝色,一张灰色。注意自定义成9宫格图片 具体实现方式这里不多说。 放到项目的 /res/drawable-hdip/ 下
2. 实现一个自定义的 layer-list 放在项目的/res/drawable/ 目录下。这里自定义文件名称为“my_progress_bg.xml” 。文件代码如下
<?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/my_pro_bg" >
</item>
<!-- 进度条的前景色 -->
<item android:id="@android:id/progress" >
<!-- 这里要注意将图片引用放到clip 中,不然得到的就是图片重叠的效果 -->
<clip android:drawable="@drawable/my_pro_blue_bg">
</clip>
</item>
</layer-list>
3. 在 ProgressBar 的 progressDrawable 属性中引用该自定义xml
android:progressDrawable="@drawable/my_progress_bg"