【问题标题】:Android: how to programmatically change animation dimensionsAndroid:如何以编程方式更改动画尺寸
【发布时间】:2013-04-30 09:30:12
【问题描述】:

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

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

提前感谢您的帮助!

【问题讨论】:

  • 我也有类似的问题。你找到这个问题的答案了吗?
  • 不,对不起!我刚刚创建了多个不同尺寸的动画,检查了屏幕宽度和高度,并使用了尺寸最相似的动画......
  • 使用视图动画,您可以执行以下操作:schemas.android.com/apk/res/android" android:duration ="500" android:fromYDelta="0%p" android:toYDelta="100%p" android:interpolator="@android:anim/decelerate_interpolator" > 但前提是你不必坚持碎片!
  • 也许那篇文章会有所帮助stackoverflow.com/a/16282741/884195
  • 会看的!谢谢

标签: android android-animation


【解决方案1】:

使用百分比而不是精确的 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>

【讨论】:

  • 这不行,编译器会报错使用分数类型。
  • @Petter 您要在哪个 android 版本上实现这一目标?
  • 我正在使用 API14,但如果我没记错的话 ObjectAnimator 不适用于分数类型(顺便说一句,AS 抱怨它),您需要进行自定义实现以实现此 AFAIK ,例如stackoverflow.com/questions/10854940/…
  • 使用分数 (80%) 不适用于对象动画师。正如上面的评论者所说,编译器抱怨。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多