我想翻译 2 图像图像当我点击按钮时,当时从左图像从左到右移动,右图像从右到左移动(两个图像都在当时的中心停止动画)在模拟器上使用 android 动画。我是android动画的新手。我怎么能这样做。?非常感谢编码。谢谢..
问问题
4882 次
2 回答
2
我无法在这里解释一切,但我会帮助你做到这一点。首先您必须为每个图像创建两个新的 XML 文件(旧版本中的动画或新版本中的 Tween 动画),然后使用翻译。例如:
<translate android:fromXDelta="10"
android:toXDelta="100"
android:duration="2000"
/>
对于左图,对于右图,请使用您的数字。然后在java文件中,设置你的按钮和图像。然后定义动画并使用它们。我认为这个例子是可以理解的:
final ImageView iv1 = (ImageView) findViewById(R.id.imageView1);
final ImageView iv2 = (ImageView) findViewById(R.id.imageView2);
final Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Animation anim = AnimationUtils.loadAnimation(main.this, R.anim.animation);
iv1.startAnimation(anim);
iv2.startAnimation(anim);
}
});
在这个例子中,我为他们两个都使用了一个动画。请记住,在这个站点中,您可以从其他而非绝对代码中获得帮助。
于 2012-05-09T12:45:44.067 回答
1
将两个 xml 文件添加到res/anim
项目的文件夹中,如下所示:
lefttoright.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate android:fromXDelta="-600%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%" android:duration="300"
android:zAdjustment="bottom">
</translate>
righttoleft.xml:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator">
<translate android:fromXDelta="0%" android:toXDelta="400%"
android:fromYDelta="0%" android:toYDelta="0%" android:duration="300"
android:zAdjustment="bottom">
</translate>
在您的布局文件ImageView
中,在屏幕左侧保留一个,在屏幕右侧保留另一个
在按钮的 onClick 事件中使用以下代码片段:
lefttoright = AnimationUtils.loadAnimation(context,
R.anim.lefttoright);
righttoleft = AnimationUtils.loadAnimation(context,
R.anim.righttoleft);
imageView1.startAnimation(lefttoright);
imageView2.startAnimation(righttoleft);
然后实现你的动画监听器:
lefttoright.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
//update imageView's position (e.g. center)
}
});
做同样的事情righttoleft
。
希望能帮助到你。
于 2012-05-09T19:21:15.050 回答