这里的两边都是圆角,指的是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
style:
progress_validity:
排版有問題 自己理一下。 。親測對的。