在视图上移动、旋转和缩放 in\out
move, rotation and zoom in\out on View
我是 android 开发的新手,我需要根据一些规范开发视图
- 触摸移动
- 双指缩放(缩放in\out)
- 用两个手指旋转
我通过这些步骤开发了旋转here,但是如果突然移开一根手指,会出现一些问题,例如跳转视图。
并且对于使用此代码的移动,它运行良好,但认为它在突然移动时会出现问题。
public static View.OnTouchListener getTouchListener(){
View.OnTouchListener onTouchListener = new View.OnTouchListener() {
int prevX, prevY;
@Override
public boolean onTouch(View v, MotionEvent event) {
final ConstraintLayout.LayoutParams par = (ConstraintLayout.LayoutParams) v.getLayoutParams();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
v.bringToFront();
prevX = (int) event.getRawX();
prevY = (int) event.getRawY();
par.bottomMargin = -8 * v.getHeight();
par.rightMargin = -8 * v.getWidth();
v.setLayoutParams(par);
return true;
}
case MotionEvent.ACTION_MOVE: {
par.topMargin += (int) event.getRawY() - prevY;
prevY = (int) event.getRawY();
par.leftMargin += (int) event.getRawX() - prevX;
prevX = (int) event.getRawX();
v.setLayoutParams(par);
return true;
}
}
return false;
}
};
return onTouchListener;
}
我需要有人帮我把这三个功能放在一起,没有任何问题
提示:如果有图书馆欢迎。
经过长时间搜索如何实现类似的东西,我终于在 GitHub 上找到了一个存储库来解决我的问题
你可以找到 类 这样做 here
使用 类 的方法是:
yourView.setOnTouchListener(new MultiTouchListener());
通过这种方式,您可以缩放、缩放 in/out(通过捏合)以及通过捏合来旋转视图。
这里是您搜索内容的完美示例:see here(example)
编码愉快!
我是 android 开发的新手,我需要根据一些规范开发视图
- 触摸移动
- 双指缩放(缩放in\out)
- 用两个手指旋转
我通过这些步骤开发了旋转here,但是如果突然移开一根手指,会出现一些问题,例如跳转视图。
并且对于使用此代码的移动,它运行良好,但认为它在突然移动时会出现问题。
public static View.OnTouchListener getTouchListener(){
View.OnTouchListener onTouchListener = new View.OnTouchListener() {
int prevX, prevY;
@Override
public boolean onTouch(View v, MotionEvent event) {
final ConstraintLayout.LayoutParams par = (ConstraintLayout.LayoutParams) v.getLayoutParams();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
v.bringToFront();
prevX = (int) event.getRawX();
prevY = (int) event.getRawY();
par.bottomMargin = -8 * v.getHeight();
par.rightMargin = -8 * v.getWidth();
v.setLayoutParams(par);
return true;
}
case MotionEvent.ACTION_MOVE: {
par.topMargin += (int) event.getRawY() - prevY;
prevY = (int) event.getRawY();
par.leftMargin += (int) event.getRawX() - prevX;
prevX = (int) event.getRawX();
v.setLayoutParams(par);
return true;
}
}
return false;
}
};
return onTouchListener;
}
我需要有人帮我把这三个功能放在一起,没有任何问题 提示:如果有图书馆欢迎。
经过长时间搜索如何实现类似的东西,我终于在 GitHub 上找到了一个存储库来解决我的问题 你可以找到 类 这样做 here
使用 类 的方法是:
yourView.setOnTouchListener(new MultiTouchListener());
通过这种方式,您可以缩放、缩放 in/out(通过捏合)以及通过捏合来旋转视图。
这里是您搜索内容的完美示例:see here(example)
编码愉快!