这可能听起来很傻,但我无法在任何地方找到如何指定ScaleTAnimation的pivotXType和pivotYType。
我知道如何以编程方式执行此操作,但我需要通过XML指定它(我需要它用于活动之间的转换,使用overridePendingTransition方法)
这是有效的代码:
Animation animation=new ScaleAnimation(1,0,1,0,ScaleAnimation.RELATIVE_TO_SELF,(float)0.5,ScaleAnimation.RELATIVE_TO_SELF,(float)0.5);
animation.setDuration(1000);
这是XML,没有我正在寻找的XML属性
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1"
android:toXScale="0"
android:fromYScale="1"
android:toYScale="0"
android:pivotX="0.5"
android:pivotY="0.5"
android:duration="2000"
/>
我在http://developers.androidcn.com/reference/android/view/animation/ScaleAnimation.html检查了文档,但没有找到任何答案。 感谢。
答案 0 :(得分:22)
希望没有人甚至不屑于阅读我的问题。 编写xml时我犯了一个错误,这里是我想要的效果的正确代码(将新活动从100%大小缩放到0%大小,就在屏幕中间)。 pivotX和pivotY的正确值是50%而不是0.5。
<?xml version="1.0" encoding="utf-8"?>
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXScale="1"
android:toXScale="0"
android:fromYScale="1"
android:toYScale="0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="600"
/>
答案 1 :(得分:18)
我知道答案已经发布,但我想我会写几句解释。
xml中的数据透视表可以设置为三种类型的值(例如使用值50
):
50%
- 百分比;对应于旋转Animation.RELATIVE_TO_SELF
的类型。 50%
基本上意味着它将在视图中间转动。
50%p
- 父母百分比;对应于旋转Animation.RELATIVE_TO_PARENT
的类型。 50%p
表示它将在父视图的中间进行旋转。
50
- 绝对;对应于旋转Animation.ABSOLUTE
的类型。 50
表示从顶部/左侧以50
像素旋转(取决于枢轴类型 - y / x)