0

私はそのように作成しているビットマップを持っています.....

myBitmap=BitmapFactory.decodeResource(res, R.drawable.picture, options);

次に、 Bitmap.createScaledBitmap を使用してスケーリングしています

それを描いているときは、次のように色を塗り直しています。

c.drawBitmap(myScaledBitmap, 0, 0, myPaint);

これは機能しますが、リアルタイムで色を変更しているため、パフォーマンスが大幅に低下します。

私が今やろうとしているのは、ループの実行が開始される前に別の色のビットマップを作成することです。これは非常に簡単なことだと思いましたが、解決できず、ポインタをいただければ幸いです。

他の唯一の方法は、実際に別の.pngを作成して開始することですが、それは少し面倒なので、コードでこれを行う方法が必要ですか? ありがとう。

4

1 に答える 1

0

それほど複雑ではありません。あなたはそれのほとんどを持っています。ループの外では、すでに持っているコードをほとんどそのまま使用できます。私はこのようなものがうまくいくはずだと思います:

Bitmap coloredBitmap = Bitmap.createBitmap(myScaledBitmap.getWidth(), myScaledBitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(coloredBitmap);
canvas.drawBitmap(myScaledBitmap, 0, 0, myPaint);

今すぐcoloredBitmapループで使用してください。

于 2013-01-31T02:28:18.687 に答える