Android-用单指手势旋转图像
Posted
技术标签:
【中文标题】Android-用单指手势旋转图像【英文标题】:Android- Rotate image with single finger gesture 【发布时间】:2014-04-07 08:14:00 【问题描述】:我想了解如何使用单点触控手势旋转位图图像。请帮助并提出一些解决方案。我在
的帮助下完成了位图的缩放http://grishma102.blogspot.in/2013/10/drag-and-drop-functionality-to-move.html 。现在我需要在触摸并旋转调整大小按钮的同时旋转整个图像。如何实现?
提前致谢
【问题讨论】:
Rotate表示你想移动图片的位置? @InnocentKiller 当我们触摸并旋转调整大小按钮时,图像应该会随着手势移动而转动。 【参考方案1】:查看我的 blogspot,我在其中尝试实现在箭头单击时拉伸图像并删除它的功能,并且您还可以使用手势在屏幕上移动图像。
Drag-Drop image 也可以查看Demo of DragDropImage
【讨论】:
非常感谢@grishu。以及如何在触摸和旋转绿色图标时旋转图像。如何提高拉伸功能的速度。【参考方案2】:用一根手指处理旋转的函数,主要思想是计算视图的 centerX 和 centerY 并考虑到状态栏的高度,如果你使用一个。
@Override
public boolean onTouch(View view, MotionEvent event)
switch (action)
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_DOWN:
rotateX = event.getRawX();
rotateY = event.getRawY();
centerX = view.getX() + ((View) getParent()).getX() + (float) view.getWidth() / 2;
centerY = view.getY() + statusBarHeight + (float) view.getHeight() / 2;
break;
case MotionEvent.ACTION_MOVE:
newRotateX = event.getRawX();
newRotateY = event.getRawY();
double angle = Math.atan2(event.getRawY() - centerY, event.getRawX() - centerX) * 180 / Math.PI;
view.setRotation((float) angle - 45);
rotateX = newRotateX;
rotateY = newRotateY;
return true;
;
【讨论】:
以上是关于Android-用单指手势旋转图像的主要内容,如果未能解决你的问题,请参考以下文章