我试图在Android项目上绘制2D矩形。它工作得很好,但唯一的问题是我在项目中使用了背景图像。 2D矩形不允许显示背景图像。例如,如果我在显示背景图像之前绘制矩形,背景将隐藏矩形。如果我首先显示背景然后绘制矩形,它将执行相同的操作,只有这次矩形将完全隐藏背景图像。
public class DrawView extends View
{
Paint paint = new Paint();
public DrawView(Context context)
{
super(context);
}
@Override
public void onDraw(Canvas canvas)
{
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStrokeWidth(3);
canvas.drawRect(30, 30, 80, 80, paint);
paint.setColor(Color.CYAN);
canvas.drawRect(33, 60, 77, 77, paint);
paint.setColor(Color.YELLOW);
canvas.drawRect(33, 33, 77, 60, paint);
}
}
在主表格上:
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
DrawView drawview = new DrawView(this);
setContentView(drawview);
setContentView(R.layout.activity_login);
}
答案 0 :(得分:0)
尝试将super.onDraw()
添加到您的onDraw()
覆盖中,以便在您开始在其上绘制自定义元素之前执行查看onDraw()
:
@Override
public void onDraw(Canvas canvas)
{
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStrokeWidth(3);
canvas.drawRect(30, 30, 80, 80, paint);
paint.setColor(Color.CYAN);
canvas.drawRect(33, 60, 77, 77, paint);
paint.setColor(Color.YELLOW);
canvas.drawRect(33, 33, 77, 60, paint);
}
答案 1 :(得分:0)
我已经弄清楚了。剩下的就是改变矩形的位置。 添加以下内容:
addContentView(drawview, new LayoutParams(Width, Height));
删除setContentView()命令。