我通过JSON将值从一个活动传递到另一个活动。我能够在下一个活动中收到字符串值。但我不知道派法师。同时所有都是数组的动态值。
发送如下:
jsonobj.put(“Location”, “Chennai”);
jsonobj.put(“Name”, “test1”);
Receving like the following:
location = MainActivity.jsonobj.getString(“Location”);
name =MainActivity.jsonobj.getString(“Name”);
请帮我详细说明如何动态发送图像并在下一个活动中显示。
答案 0 :(得分:1)
您可以将意图中的图像路径作为字符串传递,并将其设置在imageview中。
Intent intent = new Intent(getBaseContext(), ActivityB.class);
intent.putExtra("image_url", imageUrl);
startActivity(intent)
答案 1 :(得分:0)
在您的第一个活动中
将ImageView转换为位图
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
在第二个活动中
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
然后将位图设置为imageview。
答案 2 :(得分:0)
方法1:
在您的第一个活动中
将ImageView转换为位图
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();
Intent intent = new Intent(this, NewActivity.class);
intent.putExtra("BitmapImage", bitmap);
在第二个活动中
Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
然后在ImageView中显示位图。
方法2:
将位图转换为字节数组: -
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
将字节数组传递给intent: -
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("picture", byteArray);
startActivity(intent);
从Bundle获取字节数组并转换为位图图像: -
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);
答案 3 :(得分:0)
只需将其作为字符串传递并从下一个活动中取出。你说你可以这样做,所以我不解释那个部分!如果你有一个网址,那么它就是一个字符串,所以根本不需要担心。假设您发送的图像名称的文件类型不是轻量级的。
如果您想获取可绘制文件夹中图像的 ID ,请使用您获得的字符串
int id1 = getResources().getIdentifier(StringImageNameWithOutPng, "drawable", getPackageName());
如果您想要 drawable
Drawable drawable = ContextCompat.getDrawable(YourCurrantActivity.this, id1);
现在可以随意使用
whateverImageView.setImageDrawable(drawable);
答案 4 :(得分:0)
在两个活动之间传递数据的简单方法如下。
<强> FromActivity.java 强>
Intent i = new Intent(FromActivity.this, ToActivity.class);
i.putExtra("ImageDetails", imgDetails);
startActivity(i);
/* Note: imgDetails can be an object with image details of ImageDetails.java class (or)
you can set as many properties separately using putExtra multiple times.
If you are using a class, make it serializable.
*/
<强> ToActivity.java 强>
@Override
protected void onCreate(Bundle savedInstanceState) {
...
this.imgDetails = (ImageDetails) getIntent().getSerializableExtra("ImageDetails");
...
}
由于 斯利拉姆