我有一个大问题。我使用此代码为 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 函数有什么区别,但现在我没有闪烁。