Случай ACTION_UP не запускается

Желаемый результат

Я хочу нарисовать красный круг в том месте, к которому прикоснулся экран, и убрать его, когда касание отпущено.

Текущий результат

Всякий раз, когда я касаюсь экрана, в месте касания появляется красный кружок, однако, когда я отпускаю касание, кружок остается на экране.

Дополнительная помощь

Я довольно новичок в программировании для 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;
        }
    }
}

0 ответов

Другие вопросы по тегам