我如何通过android中的活动发送图像

时间:2012-04-03 16:20:27

标签: java android

我有一个应用程序,允许用户从本机库中选择图片然后我在图像视图小部件中显示此图像。

我的问题是: 1-i必须将此图像发送到另一个活动。我怎么能这样做。

2 - 在接收器Activity中我应该在图像视图小部件中显示它,如图像中的链接或Something

我试过这段代码,但它给了我一个运行时错误

   Bitmap image = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.RGB_565);
   view.draw(new Canvas(image));
   String url = Images.Media.insertImage(getContentResolver(), image,"title", null);

4 个答案:

答案 0 :(得分:0)

使用intent putExtra并发送在Acvtivity1中选择的图像用户的uri和第二个活动使用intent getExtra来读取uri

请参阅此回答https://stackoverflow.com/a/7325248/308251

答案 1 :(得分:0)

是的,你可以传入putExtra方法。

Intent i = new Intent(this, Second.class);
Bitmap b; // your bitmap
ByteArrayOutputStream bs = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 50, bs);
i.putExtra("Arraybyte", bs.toByteArray());
startActivity(i);

And Second.java

if(getIntent().hasExtra("Arraybyte")) {
ImageView iv= new ImageView(this);
Bitmap b = BitmapFactory.decodeByteArray(
    getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);        
iv.setImageBitmap(b);

}

答案 2 :(得分:0)

只需遵循以下步骤......

Uri uri = null; 1)在任何点击事件中使用以下代码打开本机图库

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),0);

这将打开图库选择图片将返回您的活动。 OnActivity结果。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 0:
    if (resultCode == RESULT_OK) {
    try {
    uri = Uri.parse(data.getDataString());
    imageView.setImageUri(uri);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
    e.printStackTrace();
    }}
    break;
    }
}

2)另外,传递图像时,您可以在传递字符串时将URI传递给下一个活动,而在secont活动中,您可以使用意图获取它。

Intent i = new Intent(this, Second.class);
i.putExtra("URI", uri.toString() );
startActivity(i);

和第二项活动

String uri = getIntent().getStringExtra("URI");

现在您已将字符串设置为图像视图,如下所示

imageView.setImageUri(Uri.parse(uri));

答案 3 :(得分:0)

也许这不是你正在寻找的东西,它有点差,但是当我需要在活动之间传递对象时,我终生了。

    public class MagatzemImg {
         private static MagatzemImg instance = null;
         private static Bitmap img;

         public MagatzemImg(){ 
            img=null; 
         }

         public static MagatzemImg getInstance() {
            if (instance == null)
            instance = new MagatzemImg();
            return instance;
         }

         public static void setImg(Bitmap im){ 
            img = im; 
         }
         public static Bitmap getImg(){
             Bitmap imgAux = img;
             img = null;
             return imgAux;
         }
    }

然后从新活动开始:

    MagatzemImg.getInstance();
    image = MagatzemImg.getImg();

您可以通过putExtra("image",true)或其他您喜欢的内容“确保”静态类中存在图片的新活动,例如检查“图片”是否为空。