利用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
- 将网络数据存到本地文件
- 将本地文件转uri