私は新しいプロジェクトを開始していますが、これまではCanvas
に描画された画像を持つ簡単なアプリを作っています。このアプリは指で画面をドラッグできます。ゲームのために多くのものをこのCanvas
に描くことです。しかし、ドラッグは非常に遅く、画面をドラッグすると画面が2〜3回/秒で更新されます。それは非常に遅いので、私はそれが非常に間違っていると推測している(私はNexus Sにいる)。ドラッグ可能な背景を作る良い方法はありますか?
私はアプリケーションの非常にベアボーンしか持っていません。この1つの画像でCanvas
を更新するスレッドを含むSurfaceViewだけです。コードは次のとおりです。
// In GameThread
private void doDraw(Canvas c) {
if(canvasInit){
Bitmap background = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.bg);
c.drawBitmap(background, offsetX, offsetY, null);
}
}
public boolean doTouchDown(MotionEvent event) {
if(drag == false){
//initialize drag
startX = event.getX();
startY = event.getY();
drag = true;
}else{
//caluclate new position
offsetX = Math.max(Math.min(0, offsetX + (event.getX() - startX)), mCanvasWidth - BACKGROUND_WIDTH);
offsetY = Math.max(Math.min(0, offsetY + (event.getY() - startY)), mCanvasHeight- BACKGROUND_HEIGHT);
startX = event.getX();
startY = event.getY();
}
return true;
}
public boolean doTouchUp(MotionEvent event){
drag = false;
return true;
}