gpt4 book ai didi

java - Android MotionEvent.Action_MOVE

转载 作者:行者123 更新时间:2023-12-01 09:32:46 26 4
gpt4 key购买 nike

我有以下代码 fragment (来自此聊天头 tutorial ),最后一个 switch case 的要点是处理 View 上的拖动,但是我无法不理解这个逻辑是如何运作的:

        ...

params.gravity = Gravity.TOP | Gravity.LEFT ;
params.x = 0;
params.y = 100;

chatHead.setOnTouchListener(new View.OnTouchListener() {

private int initialX;
private int initialY;
private float initialTouchX;
private float initialTouchY;

@Override
public boolean onTouch(View v, MotionEvent event){

switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
initialX = params.x;
initialY = params.y;
initialTouchX = event.getRawX();
initialTouchY = event.getRawY();
return true;
case MotionEvent.ACTION_UP:
return true;
case MotionEvent.ACTION_MOVE:
params.x = initialX + (int) (event.getRawX()-initialTouchX);
params.y = initialY + (int) (event.getRawY() - initialTouchY);
windowManager.updateViewLayout(chatHead, params);
return true;
}

return false;
}
});

...

因此,当我用手指单击 View 并将其向右拖动 4 个参数时,x 将收到 O(initialX)+ 4(因为我将其移动到 x=4)-initialTouchX (目前不知道这个变量的值),这是对的吗?

谢谢

最佳答案

您的 params.x 将收到 0(初始值)+ 4(移动增量),因为此代码仅跟踪手指移动的增量变化。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com