【问题标题】:Moving a view from one gridview to another in Android在Android中将视图从一个gridview移动到另一个gridview
【发布时间】:2011-09-29 21:47:20
【问题描述】:

我正在尝试编写一个具有 2 个网格视图的应用程序。网格视图在同一屏幕上并排显示。我用当前安装的应用程序填充左侧网格视图并使用它们的图标,所以基本上我有一个 ImageViews 的网格视图。该活动将 Drawable 的数组列表传递给 ImageAdapter。 imageAdapter 扩展了 BaseAdapter 并实现了 OnTouchListener。我的 getView() 方法类似于在 android 开发者网站上找到的方法

// create a new ImageView for each item referenced by the Adapter    
public View getView(int position, View convertView, ViewGroup parent) 
{        
    ImageView imageView;

    if (convertView == null) 
    {  
        // if it's not recycled, initialize some attributes            
        imageView = new ImageView(mContext);            
        imageView.setLayoutParams(new GridView.LayoutParams(85, 85));            
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);            
        imageView.setPadding(6, 6, 6, 6);        
    } 
    else 
    {            
        imageView = (ImageView) convertView;        
    }        

    //imageView.setImageResource(mThumbIds[position]);        
    imageView.setImageDrawable(mList.get(position));
    imageView.setContentDescription(mNames.get(position));
    imageView.setDrawingCacheEnabled(true);
    imageView.setOnTouchListener(this);

    return imageView;

}

这是我的 onTouch。我一直在关注其他示例,但我的场景不涉及使用 AbsoluteLayout 并且它使用 API 级别 8,因此我无法实现 OnDragListener :(

public boolean onTouch(View v, MotionEvent event) {

LayoutParams par = (LayoutParams) v.getLayoutParams();
int x = (int) event.getX();
int y = (int) event.getY();

    if (event.getAction() == MotionEvent.ACTION_DOWN)
    {
        Log.i("ACT DOWN",  (String) v.getContentDescription());
        status = START_DRAGGING;
        v.setLayoutParams(par);

        //image = new ImageView(mContext);
        //mLayout.addView(image, par);
        //Toast.makeText(AppMoverActivity.this, "" + v.getContentDescription(), Toast.LENGTH_SHORT).show();
    }
    if (event.getAction() == MotionEvent.ACTION_UP) {
        status = STOP_DRAGGING;
        v.setLayoutParams(par); 

        Log.i("ACT UP", "Stopped Dragging");
    }
    else if (event.getAction() == MotionEvent.ACTION_MOVE) {
        if (status == START_DRAGGING) {
            Log.i("ACT MOVE", "Moving");
            //Implement ability to drag the view to other grid...
        }
    }
    return true;

}

无论如何我可以完成这项工作,还是我必须改变我处理这个问题的方式?任何帮助表示赞赏!

【问题讨论】:

  • 你得到答案了吗?其实我也有类似的情况。你能分享一些这个解决方案的代码sn-p吗?
  • 你有没有解决这个问题?

标签: android gridview drag-and-drop imageview adapter


【解决方案1】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多