0

IamはAndroidゲーム開発の初心者で、現在、ビットマップとキャンバスを使用して画面にピクセルを描画するのに問題があります。

これが私のコードです:

package com.example.arkanoid;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.widget.TextView;
import android.graphics.*;

public class MainActivity extends Activity {
    Bitmap  bitmap;
    Canvas canvas;
    int lastx=0, lasty=0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        bitmap = Bitmap.createBitmap(400,400,Bitmap.Config.ARGB_8888);
        canvas = new Canvas(bitmap);
        bitmap.prepareToDraw();
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void drawPixel(int x, int y) {
        if(bitmap.isMutable()) {
            bitmap.setPixel(x,y,Color.rgb(100,100,100));
        }
        canvas.drawBitmap(bitmap,0,0,null);
    }

    public boolean onTouchEvent(MotionEvent event) {
        int x = (int)event.getX();
        int y = (int)event.getY();
        TextView texto = (TextView)findViewById(R.id.textView1); 
        texto.setText("X: "+x+", Y: "+y);
        if(lastx !=x || lasty !=y){
            lastx=x;
            lasty=y;
            drawPixel(x,y);
        }
    return false;
    }
}

関数drawPixel(int x、int y)が複数回呼び出されると、アプリケーションは実行を停止します。

エラー

そして、ピクセルは描画されないので、ここでのエラーは何ですか?御時間ありがとうございます。

LogCatからのログを忘れてしまいました。ごめんなさい。

http://txtup.co/eISoF

4

1 に答える 1

0

アップロードしたlogcatに応じてx & y、ビットマップサイズの間にあるかどうかを確認する必要があります。

于 2012-10-28T22:22:45.637 に答える