[英]How to apply multiple transaltion Animation?
I am trying to apply multiple translation animation sequentially to my Image View.我正在尝试将多个翻译动画按顺序应用于我的图像视图。
But I always ended up having the last animation executed.但我总是最终执行最后一个动画。
I don't why this is happening.我不明白为什么会这样。 I even add some System Clock sleep call, that's not effective either.
我什至添加了一些系统时钟睡眠调用,这也无效。
I don't know what I am doing wrong here.我不知道我在这里做错了什么。
I created a single activity app for making this more simple.我创建了一个单一的活动应用程序来使这更简单。 In this app, I have only one Image View .
在这个应用程序中,我只有一个Image View 。 And I am implementing multiple translation on this Image View .
我正在这个Image View上实现多重翻译。
Applied translations are -应用翻译是 -
translation Left翻译左
translation Right翻译权
translation Right翻译权
translation Left翻译左
translation Up翻译起来
translation Down翻译下来
translation Down only this is working翻译下来,这才有效
translation Up翻译起来
This is my full code for better understanding这是我的完整代码,以便更好地理解
package com.example.translationanimation;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
ImageView arshadImage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arshadImage = (ImageView) findViewById(R.id.imageViewArshad);
}
public void imagePressed(View v) {
translateLeft();
SystemClock.sleep(2200);
translateRight();
SystemClock.sleep(2200);
translateRight();
SystemClock.sleep(2200);
translateLeft();
SystemClock.sleep(2200);
translateUp();
SystemClock.sleep(2200);
translateDown();
SystemClock.sleep(2200);
translateDown();
SystemClock.sleep(2200);
translateUp();
}
public void translateLeft() {
arshadImage.animate().translationXBy(1800).setDuration(2000);
}
public void translateRight() {
arshadImage.animate().translationXBy(-1800).setDuration(2000);
}
public void translateUp() {
arshadImage.animate().translationYBy(1800).setDuration(2000);
}
public void translateDown() {
arshadImage.animate().translationYBy(-1800).setDuration(2000);
}
}
Just create an XML resource, like this :只需创建一个 XML 资源,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="1000"
android:pivotX="10%"
android:pivotY="10%"
android:repeatCount="infinite"
android:repeatMode="reverse"/>
In code : (I do this, cause it's easy to trigger)在代码中:(我这样做,因为它很容易触发)
Animation animation = AnimationUtils.loadAnimation(this, R.anim.shake);
mBinding.image.startAnimation(animation);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.