2012-02-10 19 views
1

キャンバスに複数の画像を描画して表示しようとしていますが、その方法はわかりません。複数の画像をキャンバスに描画する

は、ここに私のコードです:

public class CustomDrawableView extends View { 
private Drawable mDrawable; 
private Drawable mD2; 

public CustomDrawableView(Context context) { 
    super(context); 

    int x = 40; 
    int y = 100; 
    int width = 20; 
    int height = 10; 

    Resources res = context.getResources(); 
    mDrawable = res.getDrawable(R.drawable.main); 
    mDrawable.setBounds(x, y, x + width, y + height); 

    mD2 = res.getDrawable(R.drawable.virus); 
    mD2.setBounds(x+50,y-70,width+10,height+5); 
} 

protected void onDraw(Canvas canvas) { 
    mDrawable.draw(canvas); 
    Canvas canvas2 = new Canvas(); 
    mD2.draw(canvas2); 
} 
} 
+2

キャンバスの新しいインスタンスを作成する必要はありません。ちょうど md2.draw(キャンバス)を実行する必要はありません。 – user710502

+0

私はそれを試みました...しかしそれは動作しませんでした。それはおそらく2つのキャンバスがうまくいくと思った理由です... –

+0

mDrawableだけを描画し、次にmd2だけを描画するとどうなりますか? – user710502

答えて

2

をキャンバスの新しいインスタンスを作成する必要はありません。単にmd2.draw(キャンバス)を実行するだけです。また、試してみてください:

mDrawableだけを描画し、次にmd2だけを描画するとどうなりますか?

4

私はキャンバス上のドロウアブルで働いていないが、私はビットマップで、それはこのようなだけで正常に動作していることを確認するためにあなたを伝えることができます:

canvas.drawBitmap(bmp1,0,0,myPaint); // draws in top left corner 
canvas.drawBitmap(bmp2,100,100, myPaint); // draws at an offset of 100 px on both the X and the Y axis 
+0

ありがとうございました。 –

関連する問題