0

我有一个大问题。我使用此代码为 ImageView 设置动画,以将一个 ImageView 从当前 X 位置水平移动到 0。

这是动画代码

    translate = new TranslateAnimation(0, translateX, 0, 0);
    translate.setDuration(400);
    translate.setAnimationListener(new AnimationListener() {
        public void onAnimationEnd(Animation animation) {
            txtTitle.setText(String.format("Translate: %d %d", translateX, lpView1.leftMargin));
            lpView1.leftMargin = 0;
            mainSwitchBtn.setLayoutParams(lpView1);
        }

        public void onAnimationRepeat(Animation animation) {
        }

        public void onAnimationStart(Animation animation) {
        }

    });
    translate.reset();
    translate.setFillAfter(false);
    mainSwitchBtn.clearAnimation();
    mainSwitchBtn.startAnimation(translate);

动画结束时,我已将 ImageView 移至 0。此时我看到 ImageView 闪烁。我不知道是什么问题。有人能帮我吗?

编辑:成立问题

我已经确定了我的代码中存在的问题。

我已经替换了这段代码

mainSwitchBtn.setLayoutParams(lpView1);

有了这个

mainSwitchBtn.layout(0, 0, 0, 0);

我不知道在布局参数中设置边距和设置参数以查看对象或使用 .layout 函数有什么区别,但现在我没有闪烁。

4

1 回答 1

0

似乎动画结束并且您的图像视图返回到原始的非动画图像,也许您应该尝试使用 Horizo​​ntalScrollView 而不是动画

于 2013-04-02T10:41:47.227 回答