2

我想将片段之间的过渡动​​画化为水平滑入和滑出。

问题是,现在在我的 中,我对and字段进行objectAnimator了硬编码,如下所示:valueTovalueFrom


slide_in_from_right.xml:

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime" 
android:propertyName="x"
android:valueFrom="1280"
android:valueTo="0"
android:valueType="floatType" />

slide_out_to_left.xml:

<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@android:integer/config_mediumAnimTime" 
android:propertyName="x"
android:valueFrom="0"
android:valueTo="-1280"
android:valueType="floatType" />

但这在所有设备上看起来并不好。我如何在活动中使用100%0%你一样的价值观。我在某个地方看到我必须在我的片段中创建getX()setX()方法,但我不确定如何去实现它们。另外,如果是这样,我是否必须为我的所有片段实现方法,或者只为FragmentActivity?

4

1 回答 1

0

ObjectAnimator 对绝对值起作用。替代解决方案是使用视图动画,因为您可以指定分数

slide_right.xml

<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:shareInterpolator="false">
  <translate android:fromXDelta="-100%" android:toXDelta="0%"
             android:fromYDelta="0%" android:toYDelta="0%"
             android:duration="1000"/>
</set>

加载动画

Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.slide_right);
view.startAnimation(animation);
于 2014-07-16T05:03:38.220 回答