大家好,我還是想知道是否有可能繪製到屏幕外帆布/位圖,並充分利用硬件加速的優勢,我必須的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