空のビットマップを作成し、Androidでキャンバスを介して描画する


回答:


196

これはおそらくあなたが考えているよりも簡単です:

int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

これは私がトピックで見つけた一連のチュートリアルです:Canvas Seriesを使用した描画


別のクラス内で作成した場合、別のクラスでビットマップをどのように参照しますか。例:Bitmap text = BitmapFactory.decodeResource(mContext.getResources()、What to put here?); openglライブ壁紙内にtextViewが必要です。事前の感謝
スティーブC.

こんにちは@bigstonesは、私はOutOfMemoryErrorを取得していますビットマップを作成していたときに、この参照してください。onSizeChanged()でビットマップを作成するためのコードを、次の午前stackoverflow.com/questions/24303759/...
user123456

これは、SurfaceViewの使用中に別のスレッドでどのように実行できますか?
Zach H

-3

Bitmap.Config.ARGB_8888は使用しないでください

代わりにint w = WIDTH_PX、h = HEIGHT_PXを使用してください。

Bitmap.Config conf = Bitmap.Config.ARGB_4444; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

ARGB_8888は、より多くのビットマップまたは大きなビットマップを処理するときにOutOfMemoryの問題を引き起こす可能性があります。あるいは、ARGBオプション自体の使用は避けてください。


12
ARGB_4444が(現在は非推奨されdeveloper.android.com/reference/android/graphics/...
アレン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.