Android的阻力观点平稳 [英] android drag view smooth
本文介绍了Android的阻力观点平稳的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要拖动屏幕上的一些看法。我从触摸听者的ACTION_MOVE改变左侧和顶部的布局参数从动态事件改变自己的立场。有没有一种方法,以拖的项目更加顺畅?因为那朵样的拖的不顺利在所有...这里是code
公共布尔onTouch(查看视图,MotionEvent motionEvent){
开关(motionEvent.getAction()){
案例MotionEvent.ACTION_DOWN:
DX =(int)的motionEvent.getX();
DY =(INT)motionEvent.getY();
打破;
案例MotionEvent.ACTION_MOVE:
INT X =(int)的motionEvent.getX();
INT Y =(INT)motionEvent.getY();
RelativeLayout.LayoutParams LP =(RelativeLayout.LayoutParams)view.getLayoutParams();
INT左= lp.leftMargin +(X - DX);
INT顶部= lp.topMargin +(Y - DY);
lp.leftMargin =左;
lp.topMargin =顶部;
view.setLayoutParams(LP);
打破;
}
返回true;
}
解决方案
而不是和的getY的getX尝试使用motionEvent.getRawX()和motionEvent.getRawY()
I have to drag some views on screen. I am modifying their position by changing left and top of their layout parameters from motion event on ACTION_MOVE from touch listener. Is there a way to "drag" items more smooth? Because tis kind of "dragging" is no smooth at all... Here is the code
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
dx = (int) motionEvent.getX();
dy = (int) motionEvent.getY();
break;
case MotionEvent.ACTION_MOVE:
int x = (int) motionEvent.getX();
int y = (int) motionEvent.getY();
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) view.getLayoutParams();
int left = lp.leftMargin + (x - dx);
int top = lp.topMargin + (y - dy);
lp.leftMargin = left;
lp.topMargin = top;
view.setLayoutParams(lp);
break;
}
return true;
}
解决方案
Try to use motionEvent.getRawX() and motionEvent.getRawY() instead of getY and getX
这篇关于Android的阻力观点平稳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文