我创建了一个应该包含不同颜色的多个视图的栏。必须绘制一条线来指示条中的当前位置。下面是我的简化代码:
public class Abar extends LinearLayout {
final Paint line_paint = new Paint();
private Context context;
public Abar(Context context) {
super(context);
this.context = context;
line_paint.setColor(Color.WHITE);
setWeightSum(2000);
setBackgroundResource(R.color.blue);
View view = new View(context);
view.setBackgroundResource(R.color.yellow);
this.addView(view, new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT, 1000));
}
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawLine(20, 80, 100, 80, line_paint);
}
}
现在,这似乎不起作用。无论我是否将canvas.drawLine
与交换super.onDraw
,除非我删除view.setBackgroundResource
. 如何在 LinearLayout 上画一条线。如果可能,我宁愿不使用 FrameLayout。
下面是我在条形顶部尝试实现的目标(添加白线)的图片(注意:第一张图片上的白条只是为了清晰起见而被夸大了):