http://download.csdn.net/detail/chengxiaobo0306/6901555 有代码
第一种情况,正确的情况 (在xml 中设置 progressDrawable)
<ProgressBar
android:id="@+id/bar2"style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
android:progressDrawable="@drawable/bar" />
bar.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/bg"/>
<!-- 定义轨道上已完成部分的样式 -->
<item android:id="@android:id/progress"
android:drawable="@drawable/progress">
</item>
</layer-list>
如图
第二种情况,不正确的情况 ( 在程序 中设置 progressDrawable)
但是,如果我在程序中,如果设置 bar2.setProgressDrawable(getResources().getDrawable(R.drawable.bar));
进度不会有变化,而且 图被拉伸了。 如图
第三种情况(在程序中设置 progressDrawable)
bar2.setProgressDrawable(getResources().getDrawable(R.drawable.bar2));
bar2.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/bg"/>
<!-- 定义轨道上已完成部分的样式 -->
<item android:id="@android:id/progress">
<clip android:drawable="@drawable/progress" /> //此处为改变的地方。
</item>
</layer-list>
可以看到,这张图为 被拉伸了,但是有进度的体现。
http://download.csdn.net/detail/chengxiaobo0306/6901555 有代码