2011-09-16 9 views
0

私はユーザーの図面を保存する以下のコードを持っています。それは私のペイントアプリの一部です。今、キャンバスの背景色は白で、私はそれをイメージにします。Androidでイメージにキャンバスの背景を変更するには?

たとえば、私は家のイメージがあり、その上に何かを描きたいと思います。

@Override 
public void run() { 
    Canvas canvas = null; 
    while (_run){ 
     if(isDrawing == true){ 
      try{ 
       canvas = mSurfaceHolder.lockCanvas(null); 
       if(mBitmap == null){ 
        mBitmap = Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888); 
       } 
       final Canvas c = new Canvas (mBitmap); 

       c.drawColor(0, PorterDuff.Mode.CLEAR); 
       canvas.drawColor(0, PorterDuff.Mode.CLEAR); 
       canvas.drawColor(0xffffffff); 

       commandManager.executeAll(c,previewDoneHandler); 
       previewPath.draw(c); 

       canvas.drawBitmap (mBitmap, 0, 0,null); 
      } finally { 
       mSurfaceHolder.unlockCanvasAndPost(canvas); 
      } 


     } 

    } 

} 

ありがとうございました! :)

+0

私は本当にあなたの質問を得ていない、あなたはキャンバスに画像を描画したいですか?あなたがすでにキャンバスにイメージを描いているようです。 'canvas.drawBitmap(mbBitmap、0、0、null);という行で既にあなたが描画しています。イメージをバックグラウンドにしたい場合は、最初に描画されたものであることを確認してください。それ以外はすべて描画されます。 – Brian

+0

あなたのお返事ありがとうございます@AeroDroid。 「画像をバックグラウンドにしたい場合は、最初に描画されたものであることを確認してください。 - これは私の望むものです。任意のアイデアをどのように行うには?私はキャンバスに描画することができますが、その背景としてイメージを作ることができません... – Mico

+0

ああ、私は 'can'.d文の後に' canvas.drawBitmap(mBitmap、0、0、null) 'を置くことを意味しました。私はこれがあなたが達成しようとしているものなのかどうかは分かりませんが、試してみる価値があります。 – Brian

答えて

0

あなたmainActivity.java

また
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { 
    drawView.setBackground(getResources().getDrawable(R.drawable.background)); 
} 

onCreate()にこの行を入力し、キャンバスの背景を変更するには、次のことができonDraw()でこれを試してみてくださいが、パフォーマンスは大幅に低下します

canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.bg1),0,0,null) 
関連する問題