onDraw()
こんにちは、オフスクリーン キャンバス/ビットマップに描画してハードウェア アクセラレーションを利用できるかどうか、またはメソッド内で描画する必要があるかどうか疑問に思っていました。View
たとえば、次のようにしてオフスクリーン ビットマップに描画します。
Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap buffer = Bitmap.createBitmap(200, 200, config);
Canvas canvas = new Canvas(buffer);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawLine(0, 0, 100, 100, paint);
ただしcanvas.isHardwareAccelerated()
、 false を返し、描画は以下に比べて遅くなります:
protected void onDraw(Canvas canvas) {
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawLine(0, 0, 100, 100, paint);
}
wherecanvas.isHardwareAccelerated()
は true を返します。ハードウェア アクセラレーションを利用しながらビットマップに描画する方法はありますか? または、onDraw メソッドで画面に直接描画する必要がありますか?
助けてくれてありがとう:)私はJavaでBufferedImageオフスクリーンに描画できることを知っています。それはハードウェアアクセラレーションになりますが、電話では同じではないかもしれません...