由于项目需要,一般都会自定义进度条,说实话android系统默认的进度条确实有点小挫,但是我们可以看android源码再自行进行修改。
android源码progress是一个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: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>
我们可以模仿系统的写一个自己的progressdrawable.xml。(该文件是显示图片的,所以放在res/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/search_0" />
<!-- 定义轨道上已完成部分的样式 -->
<item android:id="@android:id/progress">
<clip
android:drawable="@drawable/search_32" >
</clip>
</item>
</layer-list>
然后就是在progress控件中调用这个
progressdrawable.xml
<ProgressBar
android:gravity="center"
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:indeterminate="false"
android:progressDrawable="@drawable/progressdrawable"
android:indeterminateOnly="false"
android:max="100"
/>
其实就是一个属性
android:progressDrawable="@drawable/progressdrawable"
这样就可以了。so easy,爸妈再也不用担心我的进度条了。