我在RelativeLayout的中心对齐ImageView,我希望它转换为alignedParentTop。如何设置deltaY来设置TranslateAnimation?
编辑: 自从我被要求展示我已经完成的工作以来,这里是我正在使用的代码:
private Animation getTranslateAnimation(final View v) {
final float yDelta = getScreenHeight() - (2 * v.getHeight());
TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, yDelta);
translateAnimation.setDuration(Initial.DURATION_MILLIS);
translateAnimation.setInterpolator(new AccelerateDecelerateInterpolator());
return translateAnimation;
}
这种方法的问题是我在这个动画之后显示了EditText,它应该位于ImageView的正下方。我已设置AnimationListener使其在onAnimationEnd上可见,但它将其定位在原始位置下方,而不是新位置。是否有一些简单的方法或我应该切换到PropertyAnimation框架?
答案 0 :(得分:0)
如果您查看Animation Resources Documentation,您会看到您可以定义相对于父级或自我的值。所以你可以有一个像这样的xml资源:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="0%"
android:toXDelta="0%"
android:fromYDelta="0%"
android:toYDelta="0%p" />
</set>
这将产生这样的效果:视图从其原始位置转换为与父顶部对齐(因为android:toYDelta="0%p"
- “p”表示它相对于父级)。
如果你不需要以编程方式真正做到这一点,那么这应该可行。