[英]How to rotate view relative to a point
我正在开发一个应用程序,该应用程序的圆规顶部带有一个指南针。
问题是我尝试了许多方法,例如:
View Arrow = findViewById(R.id.arrow);
RotateAnimation rotateAnim = new RotateAnimation(0.0f, 90,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 1f);
rotateAnim.setDuration(0);
rotateAnim.setFillAfter(true);
Arrow.setAnimation(rotateAnim);
rotateAnim.start();
但是无法达到图片中描述的结果。 我不想旋转圆圈本身,而只是旋转其中的箭头。
更改此代码:
RotateAnimation rotateAnim = new RotateAnimation(0.0f, 90,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 1f);
对此:
RotateAnimation rotateAnim = new RotateAnimation(0.0f, 90,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
假设圆的中心位于图像的中心(因此,我们将50%x和50%y用作枢轴点)。 如果圆心不在图像中心,则必须调整轴心,直到找到正确的位置。
如果箭头是单独的视图,则应同时实现两种动画:
1)沿箭头中心顺时针旋转0至90度;
2)沿90度弧线移动箭头。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.