android - 允许矩形可点击 - android

标签 android

我用canvas写了一个View,里面有很多矩形。我希望将这些矩形用作将打开新 Activity 的按钮。我该怎么做?

最佳答案

您需要注意 Suri Sahani 示例,onTouchEvent 会在任何符合触摸事件条件的操作上调用,这意味着按下、释放、移动手势等 (Android Event Listener Documentation)。要正确使用 onTouchEvent,您需要检查 MotionEvent 类型。

List<Rect> retangles;//Assume these have been drawn in your draw method.

@Override
public boolean onTouchEvent(MotionEvent event) {
    int touchX = event.getX();
    int touchY = event.getY();
    switch(event){
        case MotionEvent.ACTION_DOWN:
            System.out.println("Touching down!");
            for(Rect rect : rectangles){
                if(rect.contains(touchX,touchY)){
                    System.out.println("Touched Rectangle, start activity.");
                    Intent i = new Intent(<your activity info>);
                    startActivity(i);
                }
            }
            break;
        case MotionEvent.ACTION_UP:
            System.out.println("Touching up!");
            break;
        case MotionEvent.ACTION_MOVE:
            System.out.println("Sliding your finger around on the screen.");
            break;
    }
    return true;
}

关于android - 允许矩形可点击 - android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258146/

相关文章:

android - 可选查询参数不适用于 Room

android - OkHttp如何记录请求正文

android - 如何在属性中的Android Studio 3.1.2中使TextView下的textAlignment可见?

java - 如何将对象传递给按钮监听器中匿名生成的新线程

php - 从 React Native 应用程序向远程 PHP 服务器发送数据时出错

Android:如果 AsyncTask 初始化(文件下载)失败则关闭应用程序

android - 音频,平衡2种来源的声音

android - AdMob 奖励视频广告屏幕方向

android - 无需连接即可检测附近的wifi

android - Camera Preview 需要一些时间来重新绘制 Orientation Change