我正在创建画廊。我有显示所有图像的网格视图。现在我想这样做,当我们使用复选框选择多个图像时,另一个意图将启动,我已经完成,但现在我想在这个新意图中显示所选图像。
提前谢谢。
我正在创建画廊。我有显示所有图像的网格视图。现在我想这样做,当我们使用复选框选择多个图像时,另一个意图将启动,我已经完成,但现在我想在这个新意图中显示所选图像。
提前谢谢。
基本上你想要的是点击按钮开始新的活动而不是吐司,然后显示选定的图像,对吧?
检查第 72 行:selectImages = selectImages + arrPath[i] + "|";
这是图像的路径,而 i 是您要以某种方式保存的位置,因为这样您将知道选择了哪些图像。例如,您可以将其保存为列表或数组,然后在按钮上单击启动新活动,在捆绑包中传递此列表或数组,并在新活动中获取图像 ID 并在位图数组缩略图 [图像 ID] 中查找图像。您将需要更改
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 中添加它而不是 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 的新 Activity,如下所示:
package com.isummation.customgallery;
导入 java.util.ArrayList;
导入android.app.Activity;导入android.content.Intent;导入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 中看到打印的图像路径。就是这样,我留给您自定义测试活动并制作所选图像的画廊或其他任何东西