2011-07-13 7 views
9

同じやる二つの可能性があると私が好むするかを知らない:canvas.drawBitmapを使用してAndroid:canvas.drawBitmapとBitmapDrawable.drawの違いは?私は、AndroidでキャンバスにBitmapDrawableを描きたい場合は、そこ

  1. ()と抽出します

  2. drawable.draw(canvas)を使用して、drawableの引数としてキャンバスを渡します。

私は最初のオプションを使用していますが、違いは見当たりません。

あなたのお返事ありがとう

答えて

9

オプション番号1はやり方を決してしないでください。描画するたびに描画可能なビットマップを作成する代わりに、最初にビットマップを作成します。つまり、ビットマップを描画する場合はDrawableを作成しないでください。次のようなビットマップを作成します。

mBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.myImage); 
mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true); 

これはあなたが一回行うことです。その後、あなたのように描画します(canvas.drawbitmap())。

オプション番号2は正しく実行しています。

ここではいくつかの違いがあります。 オプション1は描画が高速で、通常は背景画像に適しています。ビットマップまたはドローイングを描画するかどうかによって、FPSに大きな変更があります。ビットマップは高速です。

オプション2は、画像のスケーリング、移動などの操作が必要な場合に使用します。それほど高速ではありませんが、あなたが言及したことのいずれかを実行したい場合、他の選択肢はありません。

希望すると便利です。

+0

あなたの答えをありがとう、これは意味があります:) – Sven

関連する問題