Android:如何以编程方式更改动画尺寸

时间:2013-04-30 09:30:12

标签: android android-animation

我正在使用片段和动画。我出来了:

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值的一半。

事先提供帮助!

1 个答案:

答案 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>