Перетащите Android 2.2

Я должен создать приложение для Android, которое загружает изображения из базы данных sqlite и показывает их на экране планшета.
Я бы реализовал перетаскивание, чтобы вы могли вставлять, удалять и перемещать все изображения на свой экран, имитируя экран настольного компьютера :)
Итак, я знаю, что существует класс перетаскивания, но он работает как минимум с уровнем API 11.
Мой вопрос: есть какой-то пример, учебник или кто-то может объяснить мне, как я могу реализовать перетаскивание и отказаться от Android API уровня 8?
Заранее спасибо.
Марко.


person Marco Gallella    schedule 02.04.2012    source источник


Ответы (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 :(

person user1298288    schedule 02.04.2012
comment
это хороший пример, но мне нужен пример, в котором я могу перемещать только один элемент за раз... Поэтому я должен распознавать нажатый значок и перетаскивать только его. - person Marco Gallella; 02.04.2012

Был аналогичный вопрос о переполнении стека, связанный с перетаскиванием. Я предоставил ссылки на некоторые учебники, которые я написал, которые работают с API 8 и выше. См. Перетаскивание и Перетаскивание кнопки из одного линейного макета в другой линейный макет.

person Bill Lahti    schedule 02.04.2012

Как реализовать перетаскивание в 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;
    }
};
person Mertuarez    schedule 24.01.2013
comment
Перетащите работу после просмотра прокрутки. и на LongClick на элементе. У меня нет времени, чтобы сделать лучшее решение - person Mertuarez; 24.01.2013