单个自定义视图中的Android两个画布(在onDraw()内)

时间:2013-09-05 05:24:01

标签: android android-layout android-canvas android-custom-view

我有自定义视图。

这个我有onDraw()函数。

  @Override
public void onDraw(Canvas canvas) 
{

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

    } 

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

  @Override
public void onDraw(Canvas canvas) 
{

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

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

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

如果您有任何其他方法可以这样做,请建议我,但除了再次重绘()的解决方案。我不能重绘()我的情况有一些问题。

希望你了解我的问题?   请建议我。

2 个答案:

答案 0 :(得分:3)

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

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);

} 

答案 1 :(得分:1)

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