没有得到适当的动画

时间:2013-11-26 05:33:16

标签: java android animation

在我的项目中,我需要创建动画,其中一个图像按钮从底部向上移动。我在ObjectAnimator类的帮助下创建了动画,但问题是我给浮点数值,但是当我在不同的设备(7英寸平板电脑和不同的hdpi手机)上尝试它时,动画是不正确的。请帮我。

3 个答案:

答案 0 :(得分:0)

在res中创建一个anim文件夹并创建一个这样的xml文件

<?xml version="1.0" encoding="utf-8"?>
<set
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/linear_interpolator"
    android:fillAfter="true">

       <translate
        android:fromYDelta="0%p"
        android:toYDelta="-35%p"
        android:duration="500" 
        />
</set>

并在您的Java代码中使用此动画。

Animation slideout;

slideout = AnimationUtils.loadAnimation(this, R.anim.yourxmlfile);
slideout.setAnimationListener(this);
view.startAnimation(slideout);

并将AnimationListener实现到您的活动中。试试这个。

答案 1 :(得分:0)

首先,您必须在运行时获得设备的高度和宽度,如下所示

    Display display = getWindowManager().getDefaultDisplay();
    hight = (float) (display.getHeight() / 2);
获得高度后

然后将此代码用于对象动画

final ObjectAnimator oa = ObjectAnimator.ofFloat(myimageview[id],
                "translationY", hight);

然后开始动画

oa.start();

答案 2 :(得分:0)

试试这个:

在您的活动的onCreate()中写下overridePendingTransition(R.anim.slide_in_up, R.anim.slide_out_up);

在res文件夹中,创建anim文件夹并复制这两个文件:

slide_in_up.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="100%p"
android:duration="@android:integer/config_longAnimTime"/> 

slide_out_up.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromYDelta="0" 
android:duration="@android:integer/config_longAnimTime" /> 

希望这有帮助。