Выполните следующие шаги для достижения этой цели:
Во-первых, вам нужно создать «копируемую» копию вашего элемента списка.Для этого вам нужно накачать новое представление, которое имеет ту же структуру, что и элементы списка в вашем списке.После этого вам нужно добавить это в диспетчер окон, например:
WindowManager.LayoutParams windowParams = new WindowManager.LayoutParams();
windowParams.gravity = Gravity.TOP | Gravity.RIGHT;
windowParams.x = item.getLeft();
windowParams.y = item.getTop();
windowParams.height = item.getHeight();
windowParams.width = item.getWidth();
windowParams.flags =
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
| WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
| WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
windowParams.format = PixelFormat.TRANSLUCENT;
windowParams.windowAnimations = 0;
View hooveredView = getClonedView(item);
// Add the hoovered view to the window manager, as a new view in the screen
WindowManager mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
mWindowManager.addView(hooveredView, windowParams);
Теперь создайте новый класс Animation, который получает WindowParams, и измените координаты x и y, чтобы переместить копируемый объект.пункт к нижней панели мусора.Обновите новую позицию вида, используя этот код:
mWindowManager.updateViewLayout(mViewToAnimate, mWindowParams);
Вы также можете поиграть с шириной и высотой, чтобы смоделировать сжатие вида.
Чтобы анимировать пустое местооставленный в списке, вы можете использовать мою ExpandAnimation, объясненную в моем блоге: http://udinic.wordpress.com/2011/09/03/expanding-listview-items/
Вот и все.Если вам нужно больше деталей - просто спросите.