Да. Это зависит от того, чего вы пытаетесь достичь.
Это может быть сделано с помощью стандартного 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
}
}