1

我有自定义视图。

在此我有 onDraw() 函数。

  @Override
public void onDraw(Canvas canvas) 
{

     canvas.drawLine(0,0,600,200,black);

    } 

在这个 onDraw() 中,我想再创建一个 canvas 。假设画布1。

  @Override
public void onDraw(Canvas canvas) 
{

     canvas.drawLine(0,0,600,200,black);

     canvas1.drawLine(0,0,500,100,Red);        
    } 

在按钮上单击我想让 canvas1 绘图可见和不可见。但我不想再次重绘。
第一件事:这是否可以在 onDraw() 中再创建一个画布?*并使其可见和不可见。*

如果您有任何其他方法可以做到这一点,请建议我,但除了重新绘制()的解决方案之外。我不能 redraw() 在我的情况下有一些问题。

希望你明白我的问题?请建议我。

4

2 回答 2

3

要使用另一个画布,您需要在第二个画布上绘制位图,然后在画布上绘制它

Bitmap bitmap ;
Canvas c2 = new Canvas(bitmap);

@Override
public void onDraw(Canvas canvas) 
{

     canvas.drawLine(0,0,600,200,black);

     // Draw on Second canvas
     c2.drawLine(0,0,500,100,Red); 
     // Draw second canvas (c2) to first one
     canvas.drawBitmap(bitmap, 0, 0, null);

} 
于 2013-09-05T05:35:52.563 回答
1

最好的方法是设计 2 个自定义视图并相互叠加,并使底部的背景透明。

于 2016-02-15T10:31:54.453 回答