如何找到我的手指在哪个布局上?
How to get where is my finger, over of which layout?
我有一个块,我把它拖到某个地方然后这个单元格变成黄色然后我退出这个单元格,它又变成灰色但是,当我把它放到某个地方时到处都是洋红色,我怎么能只画那个块当我放下它,您可以查看图片以了解我的问题
最好的问候
public boolean onDrag(View v,DragEvent event)
{
int action=event.getAction();
switch (action)
{
case DragEvent.ACTION_DRAG_STARTED:
Log.i("Script",num+"-ACTION_DRAG_STARTED");
if (event.getClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN))
{
return (true);
}
return (false);
case DragEvent.ACTION_DRAG_ENTERED:
Log.i("Script",num+"-ACTION_DRAG_ENTERED");
v.setBackgroundColor(Color.YELLOW);
break;
case DragEvent.ACTION_DRAG_LOCATION:
break;
case DragEvent.ACTION_DRAG_EXITED:
v.setBackgroundColor(Color.GRAY);
break;
case DragEvent.ACTION_DROP:
View view=(View) event.getLocalState();
ViewGroup owner=(ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container=(LinearLayout) v;
container.addView(view);
view.setVisibility(View.INVISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED:
v.setBackgroundColor(Color.MAGENTA);
break;
}
return true;
}
在 DragEvent.ACTION_DRAG_ENDED
事件中,您应该找到 view.getX()
和 view.getY()
。这将 return x 和 y 坐标以像素为单位,然后根据您的要求计算占据该块的最近视图并将其颜色更改为洋红色。
我有一个块,我把它拖到某个地方然后这个单元格变成黄色然后我退出这个单元格,它又变成灰色但是,当我把它放到某个地方时到处都是洋红色,我怎么能只画那个块当我放下它,您可以查看图片以了解我的问题 最好的问候
public boolean onDrag(View v,DragEvent event)
{
int action=event.getAction();
switch (action)
{
case DragEvent.ACTION_DRAG_STARTED:
Log.i("Script",num+"-ACTION_DRAG_STARTED");
if (event.getClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN))
{
return (true);
}
return (false);
case DragEvent.ACTION_DRAG_ENTERED:
Log.i("Script",num+"-ACTION_DRAG_ENTERED");
v.setBackgroundColor(Color.YELLOW);
break;
case DragEvent.ACTION_DRAG_LOCATION:
break;
case DragEvent.ACTION_DRAG_EXITED:
v.setBackgroundColor(Color.GRAY);
break;
case DragEvent.ACTION_DROP:
View view=(View) event.getLocalState();
ViewGroup owner=(ViewGroup) view.getParent();
owner.removeView(view);
LinearLayout container=(LinearLayout) v;
container.addView(view);
view.setVisibility(View.INVISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED:
v.setBackgroundColor(Color.MAGENTA);
break;
}
return true;
}
在 DragEvent.ACTION_DRAG_ENDED
事件中,您应该找到 view.getX()
和 view.getY()
。这将 return x 和 y 坐标以像素为单位,然后根据您的要求计算占据该块的最近视图并将其颜色更改为洋红色。