从gridview中选择多个图像并显示在其他活动中

时间:2012-12-05 10:55:04

标签: android eclipse gridview android-intent

我正在创建画廊。我有网格视图,显示所有图像。现在,当我们使用复选框选择多个图像时,我想这样做,然后另一个意图将开始我已经完成,但现在我想在这个新意图中显示所选图像。

提前完成。

1 个答案:

答案 0 :(得分:0)

基本上你想要的是点击按钮开始新活动而不是吐司,然后显示所选图像,对吗?

检查第72行:selectImages = selectImages + arrPath[i] + "|";

这是图像的路径,而i是您想以某种方式保存的位置,因为这样您就可以知道选择了哪些图像。您可以将其另存为List或Array,然后在按钮上单击start new Activity,在bundle中传递此List或Array以及在新的Activity fetch中 图像ID并在位图数组缩略图[imageID]中查找图像。你需要改变 能见度

private Bitmap[] thumbnails;

公开。试试看,如果你有成功就告诉我们,如果没有,我们可以帮你进一步;)

修改 这里有一些帮助,在bundle

中传递int数组
    Intent myIntent = new Intent(A.this, B.class);
    intent.putIntegerArrayListExtra("arr", pics);//pics is your array with id-s of bitmaps
    startActivity(myIntent);

您将在onClick按钮中添加to而不是toast,并在下一个Activity中阅读:

Intent i = getIntent();  
integer [] fromApics = i.getIntegerArrayListExtra("arr");

编辑2

好的,我会为你写一些代码但是阅读并尝试理解它: 在您的主要活动中更改此内容:

selectBtn.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            final int len = thumbnailsselection.length;
            int cnt = 0;
            String selectImages = "";
            ArrayList<Integer> pics=new ArrayList(thumbnailsselection.length);
            for (int i =0; i<len; i++)
            {
                if (thumbnailsselection[i]){
                    pics.add(i);
                    cnt++;
                    selectImages = selectImages + arrPath[i] + "|";

                }
            }
            if (cnt == 0){
                Toast.makeText(getApplicationContext(),
                        "Please select at least one image",
                        Toast.LENGTH_LONG).show();
            } else {
                Toast.makeText(getApplicationContext(),
                        "You've selected Total " + cnt + " image(s).",
                        Toast.LENGTH_LONG).show();
                Log.d("SelectedImages", selectImages);
                Intent myIntent = new Intent(AndroidCustomGalleryActivity.this, Test.class);
                 myIntent.putIntegerArrayListExtra("arr", pics);//pics is your array with id-s of bitmaps
                startActivity(myIntent);
            }
        }
    });

同时设置页面可见性:

public static String[] arrPath;

创建名为Test的新活动,如下所示:

package com.isummation.customgallery;

import java.util.ArrayList;

import android.app.Activity; import android.content.Intent; import android.os.Bundle;

public class Test extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent i = getIntent();  
    ArrayList<Integer> fromApics = i.getIntegerArrayListExtra("arr");
    for(int y=0;y<fromApics.size();y++){
        System.out.println(AndroidCustomGalleryActivity.arrPath[fromApics.get(y)].toString());
    }

}

}

不要忘记在清单文件中添加活动,您将能够在logcat中看到打印的图像路径。多数民众赞成我留给你定制测试活动,并制作一个选定的图像或任何

的画廊