Android 帧动画在屏幕上移动多次
我有一个循环中的两个图像视图的帧动画,我用animate.translationXByx在屏幕上移动它;我希望只要应用程序打开,应用程序就可以一直移动动画。像for这样的常规循环由于某些原因不起作用,像我这样的新手不理解。下面是一些代码:Android 帧动画在屏幕上移动多次,android,animation,android-animation,Android,Animation,Android Animation,我有一个循环中的两个图像视图的帧动画,我用animate.translationXByx在屏幕上移动它;我希望只要应用程序打开,应用程序就可以一直移动动画。像for这样的常规循环由于某些原因不起作用,像我这样的新手不理解。下面是一些代码: private ImageView thing; private AnimationDrawable movingthing; private int width; protected void onCreate(Bundle savedInstanceSt
private ImageView thing;
private AnimationDrawable movingthing;
private int width;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
thing= (ImageView)findViewById(R.id.pics);
thing.setImageResource(R.drawable.thingthatmoves);
movingthing = (AnimationDrawable)thing.getDrawable();
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
width = displaymetrics.widthPixels;
// happens twice
public void send(){
moveThatThing();
final Handler handler = new Handler();
handler.postDelayed(new Runnable(){
public void run(){
moveThatThing();
}
}, 3000);
}
public void moveThatThing(){
thing.setX(-10);
x = width;
movingthing.start();
thing.animate().setDuration(3000);
thing.animate().translationXBy(x);
}
我想你要找的只是一个循环 因此,应用程序的格式应该是
while(programIsStillRunning){
updateYourAnimation();
}
或许
while(theUserHasNotExitedTheProgram){
updateYourAnimation();
}
你可以把它放在一个永远运行的while循环中,但这通常不是最好的方法。尝试使用runnable
将处理程序添加到oncreate方法:
Handler h=new Handler();
h.postDelayed(move, 0);
然后将此runnable添加到您的类中
Runnable move = new Runnable() {
@Override
public void run() {
moveThatThing();
h.postDelayed(move, 3000);
}
};
我在一个基本的应用程序中进行了测试,它对我有效 我也试过while loop,它的循环非常棒,只是没有显示任何东西