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