Да. Это зависит от того, чего вы пытаетесь достичь.
Это может быть сделано с использованием стандартных API, но эта функциональность не является частью стандартных API. То есть widget.DragOverHere()
метод не существует, если вы не напишите его.
Тем не менее, это было бы не очень сложно сделать. Как минимум, вам нужно написать собственный подкласс View и реализовать два метода: onDraw(Canvas c)
и onTouch(MotionEvent e)
. Черновой набросок:
class MyView extends View {
int x, y; //the x-y coordinates of the icon (top-left corner)
Bitmap bitmap; //the icon you are dragging around
onDraw(Canvas c) {
canvas.drawBitmap(x, y, bitmap);
}
onTouch(MotionEvent e) {
switch(e.getAction()) {
case MotionEvent.ACTION_DOWN:
//maybe use a different bitmap to indicate 'selected'
break;
case MotionEvent.ACTION_MOVE:
x = (int)e.getX();
y = (int)e.getY();
break;
case MotionEvent.ACTION_UP:
//switch back to 'unselected' bitmap
break;
}
invalidate(); //redraw the view
}
}