如何将ImageView控件旋转至当前角度

Android实现ImageView旋转至目标角度的实现方式
直接用Android View原生自带的旋转属性即可,不需要引入额外依赖,分两种常用场景:
- 带平滑过渡动画的旋转(推荐,交互体验好)
直接调用View自带的animate()方法即可,系统会自动读取当前控件的旋转角度作为起始值,平滑过渡到你设置的目标角度,不需要自己维护当前角度变量:// Java 代码示例 ImageView iv = findViewById(R.id.iv_target); // 替换为你需要转到的角度值,单位为度,顺时针为正方向 float targetDegree = 180f; iv.animate() .rotation(targetDegree) .setDuration(300) // 动画时长,单位毫秒,可按需调整 .start();// Kotlin 代码示例 val iv = findViewById<ImageView>(R.id.iv_target) val targetDegree = 180f iv.animate().rotation(targetDegree).setDuration(300).start() - 无动画瞬间旋转
如果不需要过渡效果,直接设置rotation属性即可生效:iv.rotation = targetDegree
注意避坑:不要使用旧版补间动画(RotateAnimation)实现旋转,补间动画只改变控件的绘制位置,不会真正修改控件的布局属性和点击响应区域,旋转后点击位置会和实际控件位置错位,除非你有特殊兼容需求否则不建议使用。另外
rotationX、rotationY是3D翻转相关属性,平面旋转场景不要调用。
内容的提问来源于stack exchange,提问作者Holy
相关产品推荐
相关产品推荐

