我有一个大问题。我使用此代码为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函数之间有什么区别,但现在我没有闪烁。
答案 0 :(得分:0)
似乎动画结束并且你的imageview返回到原始的非动画图像,也许你应该尝试使用HorizontalScrollView而不是动画