我正在尝试使用以下代码为对话框设置动画。
LayoutParams dialogParams = getWindow().getAttributes();
dialogParams.gravity = Gravity.TOP | Gravity.LEFT;
dialogParams.x= left;
dialogParams.y = top;
dialogParams.windowAnimations = R.style.dialog_animation;
getWindow().setAttributes(dialogParams);
这显示位置处的对话框(左,上)
现在关于 dialog_animation :
<resources>
<style name="dialog_animation">
<item name="android:windowEnterAnimation">@anim/slide_in_top</item>
<item name="android:windowExitAnimation">@anim/slide_out_top</item>
</style>
</resources>
对话框在(左,上)正确显示。但问题是 - 动画是从屏幕的(0,0)位置发生的。
但我期待它从(左,上)开始。我在这里缺少什么?
答案 0 :(得分:2)
动画的起点和结尾位置在“slide_in_top”和“slide_out_top”文件中定义 - android:fromXDelta
,android:toXDelta
,android:fromYDelta
和android:toYDelta
属性。< / p>
请注意,0%
形式的值相对于视图本身,而0%p
形式的值相对于视图的父级。