java - Android onTouchEvent 在 View 类中

标签 java android touch

我尝试过使用消息和其他内容进行调试,但我从 event.getAction() 获得的唯一值是 0 ...我相信是 ACTION_DOWN 为什么我没有检测到 ACTION_MOVE 或 ACTION_UP?

package com.andrewxd.test01;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;

public class Game extends View {

    private Bitmap enemy;
    private Enemy enemyN;
    private Paint paint;
    private float x,y;

    public Game(Context context) {
        super(context);
        enemy = BitmapFactory.decodeResource(getResources(), R.drawable.enemy);
        enemy = Bitmap.createScaledBitmap(enemy, 300 , 300, false);
        enemyN = new Enemy(10, 10, enemy);
        paint = new Paint();
        x = 0;
        y = 0;
    }

    @Override
    protected void onDraw(Canvas canvas){
        canvas.drawRect(x, y, 50, 50, paint);
    }


    @Override
    public boolean onTouchEvent(MotionEvent event){
        super.onTouchEvent(event);
        if(event.getAction() == MotionEvent.ACTION_DOWN){
            x = event.getX();
            y = event.getY();
            invalidate();
        } else if(event.getAction() == MotionEvent.ACTION_MOVE){
            x = event.getX();
            y = event.getY();
            invalidate();
        }
        return false;
    }
}

我做错了什么吗?或者这应该像这样工作?如果这应该是这样的,我在哪里检测触摸移动

最佳答案

这是因为您在 onTouchEvent 结束时返回 false。当您返回 false 时,表示您的 View 无法再处理任何触摸事件,因此事件将不再发送到 View。如果你想接收MOVEUP事件,那么你需要返回true。

关于java - Android onTouchEvent 在 View 类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22719999/

相关文章:

java - JDBC + ScriptRunner : error with runScript

Android NDK 和 CPU 架构

java - MIUI 12.01系统更新将我的应用更改为夜间模式。如何禁用夜间模式?

java - 我的代码有什么问题吗? (java.lang.NullPointerException)

javascript - jQuery 和触摸/移动 : Perform Function on Swipe Left/Right

audio - 用于录制音频的插件

java - 使用 Java 创建迷宫

java - 在 Docker 中运行 Java 12 应用程序

java - 如何从 menu.xml 打开到 WebView 的链接

swift - 如何检测是否已触摸 SKSpriteNode