1

カスタムビューがあります。

この中に onDraw() 関数があります。

  @Override
public void onDraw(Canvas canvas) 
{

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

    } 

この onDraw() 内で、もう 1 つ canvas を作成したいと思います。canvas1 とします。

  @Override
public void onDraw(Canvas canvas) 
{

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

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

ボタンをクリックして、canvas1プロットを表示および非表示にします。でも二度と描きたくない。
最初に: onDraw() 内でもう 1 つのキャンバスを作成することは可能ですか? *そしてそれを目に見えるようにし、見えないようにします。*

これを行う他の方法がある場合は、私に提案してください。redraw() できません 私の場合、いくつかの問題があります。

私の問題を理解していただけたと思いますか? 私に提案してください。

4

2 に答える 2

3

別のキャンバスを使用するには、2 番目のキャンバスにビットマップを描画し、それをキャンバスに描画する必要があります

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 に答える