Maison > Questions et réponses > le corps du texte
这里的两边都是圆角,指的是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>
排版有问题 自己理一下。。亲测对的。