Я должен создать приложение для Android, которое загружает изображения из базы данных sqlite и показывает их на экране планшета.
Я бы реализовал перетаскивание, чтобы вы могли вставлять, удалять и перемещать все изображения на свой экран, имитируя экран настольного компьютера :)
Итак, я знаю, что существует класс перетаскивания, но он работает как минимум с уровнем API 11.
Мой вопрос: есть какой-то пример, учебник или кто-то может объяснить мне, как я могу реализовать перетаскивание и отказаться от Android API уровня 8?
Заранее спасибо.
Марко.
Перетащите Android 2.2
Ответы (3)
Вы можете сделать это, внедрив OnTouchListener и переопределив общедоступное логическое значение onTouch (View view, MotionEvent me), проверьте эту ссылку http://techdroid.kbeanie.com/2010/04/simple-drag-n-drop-on-android.html
или вы можете использовать http://developer.android.com/guide/topics/ui/drag-drop.html требуется API 11 :(
Был аналогичный вопрос о переполнении стека, связанный с перетаскиванием. Я предоставил ссылки на некоторые учебники, которые я написал, которые работают с API 8 и выше. См. Перетаскивание и Перетаскивание кнопки из одного линейного макета в другой линейный макет.
Как реализовать перетаскивание в Android 2.2?
Вот мой DragDropManager.class, вы могли видеть, что это возможно. В этой библиотеке вы можете перетаскивать что угодно, потому что она делает визуальную копию объекта, чтобы вы видели, что перетаскиваете. Также я использую плавающий объект PopupWindow, чтобы вы могли перетаскивать объекты прямо туда, где они есть, не меняя макеты.
listview.setOnScrollListener(new OnScrollListener()
{
@Override
public void onScrollStateChanged(AbsListView view, int scrollState)
{
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)
{
try
{
System.out.println("OK");
for(int i=firstVisibleItem;i<(firstVisibleItem+visibleItemCount);i++)
{
//view.getChildAt(i).setOnTouchListener(onTouchListener);
view.getChildAt(i).setOnLongClickListener(onLongClickListener);
}
}
catch (Exception e) {
System.out.println("Err");
}
}
});
private OnLongClickListener onLongClickListener = new OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
DragDropManager.getInstance().startDragging(v, "example");
return false;
}
};