大笨鸟飞快点 2016-05-31 10:28 采纳率: 11.1%
浏览 999

关于Android动画的一个问题想请教各位大神

我想要实现的效果很简单,如下:
在LinearLayout中只有一个Textview,
我重写了LinearLayout的onTouchEvent()方法:
当手指向下滑动距离deltaY的过程中,TextView也滑动相等的距离。
思想主要是通过TextView不断使用TranslateAnimation实现的。
以下是onTouchEvent()里面的代码,childView即子控件TextView:

int downY;
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
downY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
int currentY = (int) event.getY();
int deltaY = currentY - downY;
TranslateAnimation animation = new TranslateAnimation(0, 0, 0, deltaY);
animation.setDuration(0);
animation.setFillAfter(true);
childView.startAnimation(animation);
break;
case MotionEvent.ACTION_UP:
// 暂不作处理
break;
default:
break;
}

    return true;
}

但是运行代码,手指向下滑动的时候,childView会不断出现残影,
残影的效果我截不出来,大概就是childView不断在原位置和新位置来回闪现。
还请各位大神为我指点迷津!谢谢!

  • 写回答

2条回答 默认 最新

  • 大笨鸟飞快点 2016-05-31 10:34
    关注

    图片说明

    界面如上图,蓝色是LinearLayout, 白色的TextView是childView

    评论

报告相同问题?