Viewでの画像表示からSurfaceViewでの表示に変えて見たのですが、処理落ちと言えるほど遅くなりました。こういうものなのでしょうか?
Viewでの描画1回あたり0~1ミリ秒で、SurfaceViewでは50ミリ秒ほどかかります。
android studio 3.1.2です。
public class TestView extends SurfaceView implements SurfaceHolder.Callback {
Paint paint = new Paint(); Bitmap bitmap; int x = 0; private class DrawThred extends Thread{ public void run(){ SurfaceHolder holder = getHolder(); while(true){ long before = System.currentTimeMillis(); Canvas canvas = holder.lockCanvas(); testDraw(canvas); holder.unlockCanvasAndPost(canvas); long after = System.currentTimeMillis(); System.out.println(after-before); } } } DrawThred drawThred; public TestView(Context context){ super(context); getHolder().addCallback(this); } public void testDraw(Canvas canvas){ if(bitmap ==null){ bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.droid); } canvas.drawColor(Color.WHITE); canvas.drawBitmap(bitmap,x,0,paint); x++; } @Override public void surfaceCreated(SurfaceHolder holder) { drawThred = new DrawThred(); drawThred.start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} @Override public void surfaceDestroyed(SurfaceHolder holder) {}
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。