Android应用TranslateAnimation移动之后,利用视图的setLayoutParams从新定位
程序员文章站
2024-03-24 10:20:58
...
Android中利用TranslateAnimation移动时,不设置mTranslateAnimation.setFillAfter(true);,而利用视图的setLayoutParams来重新定位。。。。因为mTranslateAnimation.setFillAfter(true);之后,视图的事件消失,并且还有很多其他的问题。
而我们采用Animation.AnimationListener,在onAnimationEnd的方法中改变当前视图利用LayoutParams的setMargins方法重新定位位置。
代码段,仅供参考。
public void move() {
jqkjScroll.setEnabled(true);
Animation mTranslateAnimation = new TranslateAnimation(0, 0, 0,
-showheight);// 移动
mTranslateAnimation.setDuration(minute);
// mAnimationSet.setFillAfter(true);
// mTranslateAnimation.setFillAfter(true);
mTranslateAnimation
.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
if (isNoMenu == false) {
curent.setVisibility(View.GONE);
}
}
public void onAnimationEnd(Animation animation) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
contentLayout.getLayoutParams());
contentImg.setImageResource(R.drawable.open);
params.setMargins(0, endY - startY, 0, 0);
contentLayout.clearAnimation();
contentLayout.setLayoutParams(params);
jqkjScroll.scrollTo(0, 0);
isMoveORShowing = false;
}
public void onAnimationRepeat(Animation animation) {
}
});
contentLayout.startAnimation(mTranslateAnimation);
}
public void show() {
jqkjScroll.setEnabled(false);
Animation mTranslateAnimation = new TranslateAnimation(0, 0, 0,
showheight);// 移动
mTranslateAnimation.setDuration(minute);
mTranslateAnimation
.setAnimationListener(new Animation.AnimationListener() {
public void onAnimationStart(Animation animation) {
if (isNoMenu == false) {
curent.setVisibility(View.VISIBLE);
}
}
public void onAnimationEnd(Animation animation) {
contentImg.setImageResource(R.drawable.close);
isMoveORShowing = false;
contentLayout.clearAnimation();
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
contentLayout.getLayoutParams());
params.setMargins(0, showheight + endY - startY, 0, 0);
contentLayout.setLayoutParams(params);
}
public void onAnimationRepeat(Animation animation) {
}
});
contentLayout.startAnimation(mTranslateAnimation);
}
上一篇: 软件架构师之概念架构
下一篇: Restful软件架构风格