我想对ImageView进行编程,使其首先缓慢旋转,然后逐渐增加旋转速度

时间:2018-08-15 10:05:07

标签: android animation rotation imageview

我正在使用具有风扇图像的ImageView。布局资源文件是这样的:

XML布局代码:

<ImageView
android:layout_width="200dp"
android:layout_height="250dp"
android:layout_gravity="center"
android:src="@drawable/f786"
android:id="@+id/imggif"
tools:ignore="ContentDescription" />

enter image description here

在我的活动中,我定义了ImageView并设置了.animate().rotation()方法。如下所示:

我的MainActivity代码:

public class boostActivity extends AppCompatActivity {

private static int TIME_OUT = 4000;
private  ImageView iv;
private TextView txv;
private TextView mTextView;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.boost_now);

iv = (ImageView) findViewById(R.id.imggif);
txv= (TextView) findViewById(R.id.textView3);
mTextView = (TextView) findViewById(R.id.tv);

iv.animate().rotation(360).setDuration(2500);

但是风扇图像继续以相同的速度旋转。我希望它逐渐增加其旋转度。我也尝试过这个:

iv.animate().rotation(360).setDuration(3500).rotation(360).setDuration(1000)

但这没用。

1 个答案:

答案 0 :(得分:1)

您正确地希望使用animationset来链接动画。

一个例子:

    ObjectAnimator test1 = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f);
    test1.setDuration(1000);

    ObjectAnimator test2 = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f);
    test1.setDuration(500);

    AnimatorSet set = new AnimatorSet();
    set.playSequentially(test1, test2);
    set.start();