-1

我想翻译 2 图像图像当我点击按钮时,当时从左图像从左到右移动,右图像从右到左移动(两个图像都在当时的中心停止动画)在模拟器上使用 android 动画。我是android动画的新手。我怎么能这样做。?非常感谢编码。谢谢..

4

2 回答 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 回答