我正在做一个应用程序游戏。我有一个通过动画旋转旋转的framelayout。 framelayout在其中获得了一些Imageviews。我很想知道Imgaevies在旋转期间的每个时刻的位置。 现在,它在旋转发生之前让我回到图像中的初始位置。
提前感谢您的帮助。
设置和使用动画:
private Animation animRotate;
this.animRotate = AnimationUtils.loadAnimation(this, R.anim.rotate);
FrameLayout fl = (FrameLayout)this.findViewById(R.id.imageviewlayout);
fl.startAnimation(animRotate);
ImageView mimage=(ImageView)this.findViewById(R.id.image);
mimage.setOnClickListener(this);
这是rotate.xml
<?xml version="1.0" encoding="utf-8"?>
<set android:interpolator="@android:anim/linear_interpolator"
xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:toDegrees="360"
android:startOffset="0"
android:repeatMode="restart"
android:repeatCount="800"
android:pivotY="50%"
android:pivotX="50%"
android:fromDegrees="0"
android:duration="4500"/>
</set>
onclick方法:
@Override
public void onClick(View v) {
float[] locations ={0,0};
locations[0] = v.getX();
locations[1] = v.getY();
Toast.makeText(getApplicationContext(),"x= "+locations[0]+"y = "+locations[1] + "pressed "+!!!!",Toast.LENGTH_LONG).show();
v.setVisibility(View.GONE);
}
答案 0 :(得分:0)
这对我有帮助!
FrameLayout fl = (FrameLayout)this.findViewById(R.id.imageviewlayout);
ObjectAnimator animation = ObjectAnimator.ofFloat(fl, "rotation", 0,360);
animation.setDuration(4000);
animation.setRepeatCount(ObjectAnimator.INFINITE);
animation.setInterpolator(new AccelerateDecelerateInterpolator());
animation.start();
答案 1 :(得分:0)
在旋转动画中获取精确的旋转角度:
yourimageview.getRotation();