小编dub*_*bbe的帖子

检查是否在onTouchEvent中的rectF内部按下

我一直在使用扩展视图处理一个非常简单的小应用程序.问题是我找不到我的onTouchEvent中的内容.我已经明白我要将压力点(x和y)与元素进行比较,看看它可能是哪一个.

但是......我已经宣布了一个矩形:

Paint color= new Paint();
color.setColor(Color.BLACK);
rectF = new RectF(0.0f, 0.0f, 1.0f, 0.5f) ;
canvas.drawRect(rectF, color);
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好,但在onTouchEvent函数中

public boolean onTouchEvent(MotionEvent event) {
    int action = event.getAction() ;
    float x = event.getX() ;
    float y = event.getY() ;

    switch(action) {
    case MotionEvent.ACTION_DOWN:

        if(rectF().contains(x, y)) {
            // Something should happen
        }

    }

    invalidate();
    return true ;
}
Run Code Online (Sandbox Code Playgroud)

我将rectF设置为0-1范围内的某种相对点,但是根据屏幕大小,X和Y从事件范围从0开始向上.

我可以轻松转换其中任何一个值吗?

编辑

以为有人对最终解决方案感兴趣......

public boolean onTouchEvent(MotionEvent event) {
    int action = event.getAction() ;
    float x = event.getX() ;
    float y = event.getY() ; …
Run Code Online (Sandbox Code Playgroud)

android canvas touch-event

5
推荐指数
1
解决办法
2178
查看次数

标签 统计

android ×1

canvas ×1

touch-event ×1