如何共享使用Picasso从服务器加载的图像?

时间:2018-07-18 10:15:57

标签: android picasso

我需要帮助。
我已经使用Web服务从服务器上获取了一个图像,但是我没有共享该图像。

我附上了我的代码,请帮助我找到错误。

share.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Bitmap bitmap = viewToBitmap(iv, iv.getWidth(), iv.getHeight());
        Intent shareintent = new Intent(Intent.ACTION_SEND);
        shareintent.setType("image/jpeg");
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
        File file = new File(Environment.getExternalStorageDirectory() + 
                             File.separator + "Imagedemo.jpg");
        try {
            file.createNewFile();
            FileOutputStream fileOutputStream = new FileOutputStream(file);
            fileOutputStream.write(byteArrayOutputStream.toByteArray());
        }
        catch (IOException e) {
            e.printStackTrace();
        }

        shareintent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/Imagedemo.jpg"));

        startActivity(Intent.createChooser(shareintent,"share image"));
    }
}); 

public static Bitmap viewToBitmap(View view, int width, int height){

    Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    view.draw(canvas);
    return bitmap;    
}

2 个答案:

答案 0 :(得分:2)

使用url将图像加载到图像视图很简单

Picasso.get().load(imageUrl).into(imageView);

要使用“共享”按钮从 imageView 共享图像,请使用下面的代码

share.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
      BitmapDrawable bitmapDrawable = ((BitmapDrawable) imageVIew.getDrawable());
      Bitmap bitmap = bitmapDrawable .getBitmap();
      String bitmapPath = Images.Media.insertImage(getContentResolver(), bitmap,"some 
      title", null);
      Uri bitmapUri = Uri.parse(bitmapPath);
      Intent shareIntent=new Intent(Intent.ACTION_SEND);
      shareIntent.setType("image/jpeg");
      shareIntent.putExtra(Intent.EXTRA_STREAM, bitmapUri);
      startActivity(Intent.createChooser(shareIntent,"Share Image"));
  }
}

答案 1 :(得分:0)

更改此行

cnxn.commit()

收件人:

shareintent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://sdcard/Imagedemo.jpg"));

从外部存储获取文件的更好方法是:

shareintent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///sdcard/Imagedemo.jpg"));

new File(Environment.getExternalStorageDirectory() + "/" + "Imagedemo.jpg") 图片的另一件事setType

jpg