Android动画+移动布局

时间:2013-02-28 12:35:41

标签: android android-animation

我想通过点击布局中的按钮将LinearLayout的一半移出屏幕,当单击按钮移动布局时,它会返回到其原始位置。

我知道只需使用翻译布局并将布局的x位置从0%移动到-50%,然后反过来就可以完成。

我面临的问题是:

  • 虽然布局被画了一半但实际上没有移动,即布局被抽出,但其子女的坐标(用于获取点击)不会相应地移动到新位置。

有没有办法移动布局属性。我想要的是当最初点击的按钮将其移出一半时,第二次点击该按钮会滑回布局。

1 个答案:

答案 0 :(得分:0)

这应该给你一个去:

@SuppressWarnings("unused")
private void setLeftMargin(int value) {
    ((LinearLayout.LayoutParams)myLinearLayout.getLayoutParams()).leftMargin = value;
    myLinearLayout.requestLayout();
}

用法:

ObjectAnimator.ofInt(this, "leftMargin",
            0, -1 * halfWidth).setDuration(ANIM_DURATION).start();

ObjectAnimator.ofInt(this, "leftMargin",
            -1 * halfWidth, 0).setDuration(ANIM_DURATION).start();

阅读@ damian对动画库的评论。