我正在使用片段和动画。我出来了:
slide_in_up.xml:
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="y"
android:valueType="floatType"
android:valueFrom="600"
android:valueTo="0"
android:duration="500"/>
</set>
这就是使用动画的地方:
public void showFirstFragment(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.addToBackStack(null);
ft.setCustomAnimations(R.animator.slide_in_up, R.animator.slide_out_up);
ft.replace(R.id.fragmentContainer, firstFragment);
ft.commit();
}
它非常有效:输入片段从底部显示,而前一个片段消失。
我的问题是我的动画XML中的“vavlueFrom”标签有一个固定的维度(它被设置为600,因为我的片段占据了屏幕大小的一半,我想的是1200px分辨率)。有了这个固定尺寸,当我的屏幕分辨率小于1200px时,我的片段显示有点迟了,因为它从更多的下降开始(对不起,如果这句话错了 - 我是意大利语)。
如何以编程方式设置此维度?我想做一些事情:获得屏幕分辨率 - &gt;将“valueFrom”设置为y值的一半。
事先提供帮助!
答案 0 :(得分:-3)
使用百分比而不是精确的y值。
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
android:propertyName="y"
android:valueFrom="80%"
android:valueTo="0"
android:duration="500"/>
</set>