【问题标题】:Drag and drop Android 2.2拖放 Android 2.2
【发布时间】:2012-04-02 08:18:49
【问题描述】:

我必须创建一个从 sqlite db 加载图像并显示在平板电脑屏幕上的 Android 应用程序。
我会实现拖放,因此您可以将所有图像插入、删除和移动到模拟桌面计算机屏幕的屏幕中:)
所以,我知道有一个拖放类,但这至少适用于 API 级别 11。
我的问题是:有一些示例、教程或有人可以解释我如何使用 android API 级别 8 实现拖放?
提前致谢。
马可。

【问题讨论】:

    标签: android listview gridview drag-and-drop android-view


    【解决方案1】:

    您可以通过实现 OnTouchListener 并覆盖 public boolean onTouch(查看视图,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 :(

    【讨论】:

    • 是一个很好的例子,但我需要一个例子,我每次只能移动一个项目......所以我必须识别被按下的图标并只拖放它。
    【解决方案2】:

    Stack Overflow 上有一个与拖放相关的类似问题。我提供了一些我编写的使用 API 8 及更高版本的教程的链接。见Dragging and Dropping a button from one Linear Layout to another Linear Layout

    【讨论】:

      【解决方案3】:

      How to implement Drag and Drop in 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;
          }
      };
      

      【讨论】:

      • 滚动视图后拖动工作。并在项目上长按。我没有时间做出更好的解决方案
      猜你喜欢
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多