可以在自定义Progressbar progressDrawable中进行圆角处理吗?
|
我有一个进度栏,看起来像所附的图片:
而且我已经走了很长一段路。我非常接近,唯一不起作用的部分是progressDrawable的圆角。这是我的样子。 (请注意,用红色圆圈圈出,白色轮廓内的填充没有圆角):
因此,当进度条以形状,渐变或颜色上色时,我发现了两种方法可以完成这项工作。但是,我无法将其与图像作为progressDrawable获取。
这是我的类,扩展了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>
以下是选择器中使用的图像:
slide_track->
slide_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\"
/>
有人知道如何进行这项工作吗?
没有找到相关结果
已邀请:
2 个回复
辽躺
搁手
这是(progress_background.xml):
这是拇指(oval_seekbar_thumb.xml):
拇指的高度应与搜寻杆的高度相同,以便正确显示。