我试图将圆形图像相对于其中心旋转一圈。
我知道可以使用 OnTouchListener和onTouch()方法 ....通过使用MotionEvent.ACTION_DOWN,MotionEvent.ACTION_MOVE和MotionEvent.ACTION_UP事件来完成此操作。 但是我无法找到旋转角度......从初始位置触摸不同点(即将初始位置设为0度并在旋转后找到每个角度...如0,90.180,270度。 ..etc)。
基本上我的想法是在将图像旋转一定角度后确定图像的实际位置。
请看下图:
请分享您对此问题的看法。
任何形式的帮助都将受到高度赞赏。
由于
答案 0 :(得分:2)
您需要这样:
步骤1.将JitPack存储库添加到您的构建文件中 将其添加到存储库末尾的root build.gradle中:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
第2步。添加依赖项
dependencies {
implementation 'com.github.sheetalkumar105:ZoomImageView-android:1.01'
}
第3步。在布局中添加ZoomImageView
<com.impulsive.zoomimageview.ZoomImageView
android:layout_width="match_parent"
android:layout_height="300dp"
android:src="@drawable/sample"
android:scaleType="matrix"
app:rotation="true"
app:scaledown="true"
/>
app:rotation="true" // Allow to rotate image in view. Default value is true.
app:scaledown="true" // Allow to ZoomOut less than container size. Default value is false.
Zoom or Rotate image on pinch or touch in Android ImageView
完整代码:
答案 1 :(得分:0)
有关旋转图像,请参阅:Android: Rotate image in imageview by an angle
可以计算相对于基部的触点角度:arctan((x1 - x0)/(y1 - y0))
其中(x0,y0) - 圆的中心,(x1,y1) - 触摸点。请注意y1 == y0的情况。
答案 2 :(得分:-1)
要找到任何圆的角度,公式是正确的,即 Math.toDegrees(Math.atan2(x1-x0,y0-y1))
在圆圈中,我们使用一点点三角法来计算角度,因此我们必须取一个基础来修正(x0,y0)和其他点corrds(x1,y1)。现在根据我们的公式,我们需要给出两个参数,即 Base 和 Parpendicular 。所以 base 是 x1-x0 而垂直是 y0-y1 。请试一试,我认为它会对你有所帮助!!