大家好,我还是想知道是否有可能绘制到屏幕外帆布/位图,并充分利用硬件加速的优势,我必须的View
Android的画布和硬件加速?
例如,onDraw()
方法我画到屏幕外位图中绘制通过执行以下操作:
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);
}
,其中canvas.isHardwareAccelerated()
返回true。有没有办法在利用硬件加速的同时绘制到位图?或者我必须直接在onDraw方法中绘制屏幕?
谢谢您的帮助:)我知道在Java中我可以得出一个BufferedImage的屏幕外,它会被硬件加速,但在手机上也许它不一样的...
根据此回答:http://stackoverflow.com/a/9950775/935242 “SurfaceView.lockCanvas()返回的画布目前无法进行硬件加速。” – ggurov 2013-08-15 11:12:47
TextureView相同:http://stackoverflow.com/a/14987164/935242 “TextureView只在应用程序硬件加速时起作用,但它从lockCanvas()返回的Canvas目前从未硬件加速......目前,获得硬件加速Canvas的唯一方法是使用View的onDraw(Canvas)方法。“ – ggurov 2013-08-15 11:32:28
@ggurov更新。谢谢。 – 2013-08-15 12:20:33