类似桌面图标的拖拽效果
解决方案 »
- 360浮动窗口,窗口点击外面变小,事件怎么写。
- 请问子控件drawable的问题
- Spinner
- monkeyrunner安卓自动化中,为什么命令重启后不能拖拽屏幕, 请高手指教
- 问android-sdk-windows.rar 与 android-sdk_r10-windows.rar 区别
- 问个关于SIM卡存取内容大小的限制
- Eclipse新建一个Android项目失败,请教牛人
- wrewr
- 折腾了好久的android和webService交互的问题,跪求解答............
- 求助,在Android下实现过Syncml的客户端?求指点
- android 版本问题
- 关于谷歌地图显示,有个方格的“X”,是怎么回事?
这个例子就是你想要的效果。
实验了下,应该就是桌面拖动效果的一个小demo!
final int count = container.getChildCount();
final int scrolledX = x + container.getScrollX();
final int scrolledY = y + container.getScrollY();
final View ignoredDropTarget = mIgnoredDropTarget; for (int i = count - 1; i >= 0; i--)
{
final View child = container.getChildAt(i);
if (child.getVisibility() == VISIBLE && child != ignoredDropTarget) {
child.getHitRect(r);
if (r.contains(scrolledX, scrolledY)) {
DropTarget target = null;
if (child instanceof ViewGroup) {
x = scrolledX - child.getLeft();
y = scrolledY - child.getTop();
target = findDropTarget((ViewGroup) child, x, y, dropCoordinates);
}
if (target == null) {
if (child instanceof DropTarget) {
// Only consider this child if they will accept
DropTarget childTarget = (DropTarget) child;
if (childTarget.acceptDrop(mDragSource, x, y, 0, 0, mDragInfo)) {
dropCoordinates[0] = x;
dropCoordinates[1] = y;
return (DropTarget) child;
} else {
return null;
}
}
} else {
return target;
}
}
}
} return null;
这是拖拽目标的选择,不断地减小选择区域,最终放下,拖拽有拖拽源,和拖拽的action还有就是 最后的落点,因为android的界面是已经被网格化了的!所以代码中定义了 最终的那个RECT用于获取最终发下的网格坐标!