0

望ましい結果

画面をタッチした位置に赤い円を描き、タッチを離したら消したいです。

現在の結果

画面に触れるたびに、タッチした場所に赤い円が表示されますが、タッチを離すと、円は画面に残ります。

追加のヘルプ

私はAndroidのコーディングにかなり慣れていないので、コードをざっと見ただけで不要なものを使用していることがわかった場合は、改善できるように教えてもらいたいです。

マイコード

package com.mr.mwood.thumbinput;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new SampleView(this));
    }

    class SampleView extends SurfaceView {

        private final SurfaceHolder surfaceHolder;
        private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

        // CONSTRUCTOR
        public SampleView(Context context) {
            super(context);
            surfaceHolder = getHolder();
            paint.setColor(Color.RED);
            paint.setStyle(Style.FILL);
        }

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            Canvas canvas = surfaceHolder.lockCanvas();
            switch (event.getActionMasked()) {
            case (MotionEvent.ACTION_DOWN):
                canvas.drawColor(Color.BLACK);
                canvas.drawCircle(event.getX(), event.getY(), 50, paint);  
                break;
            case (MotionEvent.ACTION_UP):
                canvas.drawColor(Color.BLACK);
                break;
            }
            surfaceHolder.unlockCanvasAndPost(canvas);
            return false;
        }
    }
}
4

0 に答える 0