我正在使用两项活动。一个活动在GridView
中显示图片,然后点击GridView
中的特定图片,它应该在另一个活动中显示全屏图像。
我怎样才能做到这一点?
我的MyGridView.java
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Image"+(position+1),Toast.LENGTH_SHORT).show();
System.out.println(id);
Intent i = new Intent(this, MyImageViewActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("image", position);
i.putExtras(bundle);
startActivityForResult(i, 0);
}
});
答案 0 :(得分:3)
传递图像URL / Uri,而不是传递原始图像数据。
答案 1 :(得分:2)
您将参数传递给Intent中的Activity。 如果图像来自文件,则传递路径String,否则传递位图
startActivity(new Intent(this, YourActivity.class).putExtras(new Bundle().putParcelable("bitmap", Bitmap)))
答案 2 :(得分:2)
在两个活动之间传递数据:
bytes[] imgs = ... // your image
Intent intent = new Intent(this, YourActivity.class);
intent.putExtra("img", imgs);
startActivity(intent);
然后在YourActivity中:
bytes[] receiver = getIntent().getExtra("imgs");
也可以通过这个link来帮助你。这里你可以知道how to convert bitmap to bytes
答案 3 :(得分:2)
在MyGridView中:( someInteger是一个表示所选图像索引的整数
Intent myIntent = new Intent(this, MyImageViewActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("image", someInteger);
myIntent.putExtras(bundle);
startActivityForResult(myIntent, 0);
在MyImageViewActivity中:
Bundle bundle = this.getIntent().getExtras();
int pic = bundle.getInt("image");
当然,你可以在捆绑中加入任何东西!也许是字节数组或其他东西
答案 4 :(得分:1)
点击Grid View
的项目后,获取点击的项目,然后通过activity
将其作为参数传递给下一个PutExtra
。在下一个活动中,从附加内容中检索图像并将其显示给用户
答案 5 :(得分:1)
我想你需要使用Intent类。
Intent intent = new Intent(YourSourceActivity.this, TargetActivty.class);
Bundle addinfo = new Bundle();
addinfo.putInt("imageid", someid);
intent.putExtras(addinfo);
答案 6 :(得分:0)
尝试通过intent.putExtra()传递与image相关的id,并在已启动的活动中通过bundle接收它。
答案 7 :(得分:0)
在Activity中将图像转换为ByteArray并将其附加到意图
intent.putExtra("img",<ByteArray>);
然后是startActivity B.
在活动B中
Bitmap bm = BitmapFactory.decodeByteArray(getIntent().getByteArrayExtra("img"), 0, getIntent().getByteArrayExtra("img").length);
这样您就可以在活动之间传递图像。
答案 8 :(得分:0)
这是我的过程:它非常好。 活性1:
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG,100,stream);
byte[] byteArray=stream.toByteArray();
Intent intent = new Intent(getApplicationContext(), FrameActivity.class);
intent.putExtra("Image", byteArray);
startActivity(intent);
FrameActivity.class中的
collageView = (CollageView) findViewById(R.id.btn_collage);
byte[] byteArray = getIntent().getByteArrayExtra("Image");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
collageView.setImageBitmap(bmp);