1
我已經創建了一個應該包含不同顏色的多個視圖的欄。必須繪製一條線來指示條上的當前位置。以下是我的簡化代碼:如何在包含其他視圖的LinearLayout中繪製一條線?
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。
下面是我想要實現對酒吧的頂部(加白線)圖片(注:在第一張照片的白條只是誇張的大了清晰的SO):
正在發生的事情是,您在LinearLayout上畫一條線,然後將一個孩子放在上面。因此該線在孩子後面。我不完全明白你想要做什麼,因此我很難提出一個最佳解決方案。 – pgsandstrom 2012-04-11 10:32:56