Android 模拟滑动事件 45
4个回答
展开全部
private int start_x;
private int start_y;
private int stop_x;
private int stop_y;
//模拟移动一张图片
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN://手指落下时
mode = DRAG;
stop_x = (int) event.getRawX();
stop_y = (int) event.getRawY();
//start_x = (int) event.getX();
start_x=stop_x-this.getLeft();
start_y = stop_y - this.getTop();
break;
case MotionEvent.ACTION_MOVE://然后在Move里写你的单指移动的过程比如移动一张图片
if (mode == DRAG) {
if (Math.abs(stop_x - start_x - getLeft()) < 88
&& Math.abs(stop_y - start_y - getTop()) < 85) {
isZoom = false;
this.setPosition(stop_x - start_x, stop_y - start_y, stop_x
+ this.getWidth() - start_x, stop_y - start_y
+ this.getHeight());
stop_x = (int) event.getRawX();
stop_y = (int) event.getRawY();
break;
}
}
}
}
private int start_y;
private int stop_x;
private int stop_y;
//模拟移动一张图片
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN://手指落下时
mode = DRAG;
stop_x = (int) event.getRawX();
stop_y = (int) event.getRawY();
//start_x = (int) event.getX();
start_x=stop_x-this.getLeft();
start_y = stop_y - this.getTop();
break;
case MotionEvent.ACTION_MOVE://然后在Move里写你的单指移动的过程比如移动一张图片
if (mode == DRAG) {
if (Math.abs(stop_x - start_x - getLeft()) < 88
&& Math.abs(stop_y - start_y - getTop()) < 85) {
isZoom = false;
this.setPosition(stop_x - start_x, stop_y - start_y, stop_x
+ this.getWidth() - start_x, stop_y - start_y
+ this.getHeight());
stop_x = (int) event.getRawX();
stop_y = (int) event.getRawY();
break;
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个有点深度。
给个思路(未验证,估计玄):
用一个线程每隔30毫秒左右生成一个MotionEvent,传递到UI线程调用
dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent
给个思路(未验证,估计玄):
用一个线程每隔30毫秒左右生成一个MotionEvent,传递到UI线程调用
dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent
追问
我只是个菜鸟,不是很懂,没成功....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ViewPager可以实现
追问
具体怎么做?我很菜的,求代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询