我正在开发一款应用程序,它的圆圈顶部有一个带箭头的指南针。
问题在于我尝试了很多方法,例如:
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();
但无法实现图像中描述的结果。 我不想旋转圆圈本身,只想旋转箭头。
答案 0 :(得分:0)
更改此代码:
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 :(得分:-1)
如果箭头是单独的视图,您应该同时实现两种动画:
1)顺时针旋转箭头中心0到90度;
2)沿90度弧形路径移动箭头。