android PopupWindow如何拖动 试试把int dx int dy 变成成员变量。 现在是局部变量。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那两个值应该不关事吧,移动的时候它都会得到个最新的值啊case MotionEvent.ACTION_MOVE: int dx = (int)event.getRawX() - lastX; int dy = (int)event.getRawY() - lastY; popup.update(dx, -dy, -1, -1);这地方应该为负的,不然上下移动刚好颠倒,不知道为什么 PopupWindow拖动有demo吗,[email protected] 谢了 这个问题如果调试的话应该很好解决。多半出现在popup.update这个方法上,你在ontouchend方法里重新设置下其位置setposition。 楼主 拖动Demo可以分享下吗 谢谢. 楼主 拖动Demo可以分享下吗 谢谢. 可不可以发我一份![email protected] 求分享 楼主大神 [email protected] case MotionEvent.ACTION_DOWN: lastX = (int) event.getX(); lastY = (int) event.getY(); break; case MotionEvent.ACTION_MOVE: dx = (int) event.getX() - lastX; dy = (int) event.getY() - lastY; mScreenX += dx; mScreenY += dy ; pop_main.update(mScreenX, mScreenY, -1, -1); break; 下面这个正式解决了问题public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); break; case MotionEvent.ACTION_UP: mScreenX += dx; mScreenY += dy; break; case MotionEvent.ACTION_MOVE: dx = (int) event.getRawX() - lastX + mScreenX; dy = lastY - (int)event.getRawY() + mScreenY; System.out.println("X2 = "+ dx+", Y2 = "+ dy); pop_quality.update( dx,dy, -1, -1); break; } return true; } 不对,上面那个还有个问题,第二次以后就不正常了,代码应该再改一下@Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); break; case MotionEvent.ACTION_UP: mScreenX = dx; mScreenY = dy; break; case MotionEvent.ACTION_MOVE: dx = (int) event.getRawX() - lastX + mScreenX; dy = lastY - (int)event.getRawY() + mScreenY; pop_quality.update( dx,dy, -1, -1); break; } return true; }其中mScreenX 和mScreenY 的初始值设为0,并 设置为全局变量 为什么图片在popupwindow中不能放大缩小?? 有关Androidpn真机测试的问题 新手的问题 AVD第二个打不开 drawBitmap的方法为什么这么绕? 请问在TabActivity里面的问题 請教有關android錄影問題 android中spinner选中值的获取 在TimerTask中还需要new Thread么? 手机红外遥控器 求源码 apk里要调用新浪微博客户端,请问包名和入口activity名是什么 应用程序跟DB文件一起打包失败,内详,求教
case MotionEvent.ACTION_MOVE:
int dx = (int)event.getRawX() - lastX;
int dy = (int)event.getRawY() - lastY;
popup.update(dx, -dy, -1, -1);这地方应该为负的,不然上下移动刚好颠倒,不知道为什么
lastX = (int) event.getX();
lastY = (int) event.getY();
break;
case MotionEvent.ACTION_MOVE:
dx = (int) event.getX() - lastX;
dy = (int) event.getY() - lastY;
mScreenX += dx;
mScreenY += dy ;
pop_main.update(mScreenX, mScreenY, -1, -1);
break;
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_UP:
mScreenX += dx;
mScreenY += dy;
break;
case MotionEvent.ACTION_MOVE:
dx = (int) event.getRawX() - lastX + mScreenX;
dy = lastY - (int)event.getRawY() + mScreenY;
System.out.println("X2 = "+ dx+", Y2 = "+ dy);
pop_quality.update( dx,dy, -1, -1);
break;
}
return true;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
break;
case MotionEvent.ACTION_UP:
mScreenX = dx;
mScreenY = dy;
break;
case MotionEvent.ACTION_MOVE:
dx = (int) event.getRawX() - lastX + mScreenX;
dy = lastY - (int)event.getRawY() + mScreenY;
pop_quality.update( dx,dy, -1, -1);
break;
}
return true;
}
其中mScreenX 和mScreenY 的初始值设为0,并 设置为全局变量