这里的两边都是圆角,指的是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>
PHP中文网2017-04-17 15:08:28
解決了,我問題問的可能不清楚,導致有人理解錯了,目前需求是:
需要progress的進度部分兩邊都是圓角
使用shape一開始就試過了,沒用的
一樓的答案,我照搬試了一下,跟我最開始的效果一樣
使用.9圖的話,可以規避這個問題,只需要把問題中:
<!-- 进度条 -->
<item android:id="@android:id/progress" android:drawable="@drawable/live_channel_progress"/>
這部分改一下即可:
<!-- 进度条 -->
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%"
android:drawable="@drawable/live_channel_progress" />
</item>
這是因為Progressbar在繪製的時候會clip一下,如果你指定了clip屬性,右邊一定會被截成直角,所以要在item裡使用scale,配合.9圖就完美了。
http://stackoverflow.com/questions/2078809/progress-bar-rounded-on-both-sides-in-android
迷茫2017-04-17 15:08:28
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="160dp"
android:layout_height="7dp"
style="@style/ProgressBar_Validity"
/>
style:
<style name="ProgressBar_Validity" parent="@android:style/Widget.ProgressBar.Horizontal">
<item name="android:indeterminateOnly">false</item>
<item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
<item name="android:progressDrawable">@drawable/progress_validity</item>
</style>
progress_validity:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@android:id/secondaryProgress">
<clip >
<shape >
<corners android:radius="6dip" />
<solid android:color="#EAEAEA"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip >
<shape >
<corners android:radius="6dip" />
<solid android:color="#03A9F4"/>
</shape>
</clip>
</item>
</layer-list>
排版有問題 自己理一下。 。親測對的。