这里的两边都是圆角,指的是progressbar的progress部分
比如,需要这个效果:
如果使用shape,progress的右边是直角,所以使用了.9图
但是实际中,设置progress为10了之后(max为100),整体还是很宽,感觉像是progress属性不能用了
原始界面文件中的使用:
<ProgressBar
android:id="@+id/live_channel_progres"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="112dp"
android:layout_height="15dp"
android:max="100"
android:progress="10"
android:progressDrawable="@drawable/progress_bg" />
progress的drawable:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 背景 gradient是渐变,corners定义的是圆角 -->
<item android:id="@android:id/background">
<shape>
<corners android:radius="30dp" />
<solid android:color="#ff0" />
</shape>
</item>
<!-- 进度条 -->
<item android:id="@android:id/progress" android:drawable="@drawable/live_channel_progress"/>
</layer-list>
解决了,我问题问的可能不清楚,导致有人理解错了,目前需求是:
使用shape一开始就试过了,没用的
一楼的答案,我照搬试了下,跟我最开始的效果一样
使用.9图的话,可以规避这个问题,只需要把问题中:
这部分改一下即可:
这是因为Progressbar在绘制的时候会clip一下,如果你指定了clip属性,右边肯定会被截成直角,所以要在item里使用scale,配合.9图就完美了。
http://stackoverflow.com/questions/2078809/progress-bar-rounded-on-both-sides-in-android