3

我正在使用片段和动画。我提出了这个:

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,因为我的片段占据了屏幕大小的一半,我正在考虑 1200 像素的分辨率)。使用这个固定尺寸,当我的屏幕分辨率小于 1200 像素时,我的片段显示有点晚,因为它从更下方开始(对不起,如果这句话是错误的 - 我是意大利人)。

如何以编程方式设置此维度?我想做类似的事情:获取屏幕分辨率-> 将“valueFrom”设置为 y 值的一半。

提前谢谢您的帮助!

4

1 回答 1

-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>
于 2014-01-09T00:49:48.570 回答