动画中的位置旋转android

时间:2015-07-18 15:13:22

标签: android animation rotation

我正在做一个应用程序游戏。我有一个通过动画旋转旋转的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);
        }

2 个答案:

答案 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();