Android分享图片

利用android自带的Intent.ACTION_SEND分享图片

Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/*");
startActivity(Intent.createChooser(intent, "分享到"));

1. 本地图片

/**  
 * 获取本地文件的uri  
 * @param file  
 * @return  
 */  
public static Uri getUriFromFile(File file)  {  
        Uri imageUri = null;    
        if (file != null && file.exists() && file.isFile()) {  
            imageUri = Uri.fromFile(file);  
        }  
        return imageUri;  
    }

2. 网络图片

对于网络图片有两种方式:

方式一:通过url获取bitmap,然后转uri,这种方法在有些手机上会报错

MediaStore.Images.Media.insertImage(ContentResolver cr,
Bitmap source,
String title,
String description)

/**
     * 通过url获取bitmap
     * @param path
     * @return
     */
    public static Bitmap returnBitMap(String path) {
        URL url = null;
        InputStream is =null;
        Bitmap bitmap = null;
        try {
            url = new URL(path);
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
        try {
            HttpURLConnection conn = null;//利用HttpURLConnection对象,我们可以从网络中获取网页数据.
            if (url != null) {
                conn = (HttpURLConnection) url.openConnection();
            }
            if (conn != null) {
                conn.setDoInput(true);
                conn.connect();
                is = conn.getInputStream(); //得到网络返回的输入流
                bitmap = BitmapFactory.decodeStream(is);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bitmap;
    }

方式二:通过url下载图片,然后用获取本地文件uri

  1. 将网络数据存到本地文件
  2. 将本地文件转uri

你可能感兴趣的:(Android分享图片)