我有一个进度条,应该看起来像附图:
我已经做了很多工作。我非常接近成功,唯一不起作用的部分是progressDrawable的圆角。这是我的样子(请注意,红圈内的填充没有圆角):
因此,当进度条使用形状、渐变或颜色进行着色时,我找到了几种方法可以使其正常工作。但是,当进度Drawable使用图像时,我无法实现它。
这是扩展ProgressBar的类:
这是我的选择器:
![enter image description here](https://istack.dev59.com/46UNQ.webp)
![enter image description here](https://istack.dev59.com/Jcvog.webp)
这是扩展ProgressBar的类:
public class RoundedProgressBar extends ProgressBar{
private Paint paint;
public RoundedProgressBar(Context context) {
super(context);
setup();
}
public RoundedProgressBar(Context context, AttributeSet attrs) {
super(context, attrs);
setup();
}
public RoundedProgressBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setup(); ;
}
protected void setup()
{
paint = new Paint();
}
@Override
protected synchronized void onDraw(Canvas canvas) {
// First draw the regular progress bar, then custom draw our text
super.onDraw(canvas);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
RectF r = new RectF(0,0,getWidth()-1,getHeight()-1);
canvas.drawRoundRect(r,getHeight()/2,getHeight()/2, paint);
}
}
这是我的选择器:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="@android:id/background"
android:drawable="@drawable/slider_track" />
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/slider_track" />
<item
android:id="@android:id/progress"
android:drawable="@drawable/slider_track_progress" />
</layer-list>
以下是选择器中使用的图像:
slider_track->
slider_track_progress->
以下是我在活动布局中嵌入进度条的位置
<com.android.component.RoundedProgressBar
android:id="@+id/player_hp_bar"
android:layout_width="fill_parent"
android:layout_height="36dip"
android:layout_marginLeft="30dip"
android:layout_marginRight="30dip"
android:max="100"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/slider_layer_list"
android:progress="20"
android:maxHeight="12dip"
android:minHeight="12dip"
/>
有人知道如何使这个工作吗?