android 分享本地图片,Android一键分享——原生分享图片

有些东西还是记下来比较好,记记随笔,欢迎批评建议。

Android分享的实现大多可以用第三方的分享,友盟、ShareSDK等。这里介绍的是Android系统自带的分享。调用原生的分享时,系统会调出手机中所有具有分享功能的APP,当然你也可以用代码进行筛选,分享界面也是根据系统的风格。

注意:如果是分享本地图片,获取图片地址拼成uri即可;若不是本地图片,分享需先将图片保存到本地并获取uri,若直接分享会出现报错提示图片不存在。

保存图片到本地

Android SDK中 Environment类 提供了getExternalStorageDirectory()方法来获取外部存储的根路径。由于需要在外部存储中写文件,需要在AndroidManifest.xml中增加如下的权限声明。

保存图片文件时,通过Bitmap的compress()方法将Bitmap对象压缩到一个文件输出流中,然后flush()即可。

/** * 将图片存到本地 */

private static Uri saveBitmap(Bitmap bm, String picName) {

try {

String dir=Environment.getExternalStorageDirectory().getAbsolutePath()+"/renji/"+picName+".jpg";

File f = new File(dir);

if (!f.exists()) {

f.getParentFile().mkdirs();

f.createNewFile();

}

FileOutputStream out = new FileOutputStream(f);

bm.compress(Bitmap.CompressFormat.PNG, 90, out);

out.flush();

out.close();

Uri uri = Uri.fromFile(f);

return uri;

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace(); }

return null;

}

从assets中获取图片

/** * 从Assets中读取图片 */

private Bitmap getImageFromAssetsFile(String fileName){

Bitmap image = null;

AssetManager am = getResources().getAssets();

try {

InputStream is=am.open(fileName);

image=BitmapFactory.decodeStream(is);

is.close();

} catch (IOException e) {

e.printStackTrace(); }

return image;

}

原生分享图片

/** * 分享图片 */

Bitmap bgimg0 = getImageFromAssetsFile("ic_launcher.png");

Intent share_intent = new Intent();

share_intent.setAction(Intent.ACTION_SEND);//设置分享行为

share_intent.setType("image/*"); //设置分享内容的类型

share_intent.putExtra(Intent.EXTRA_STREAM, saveBitmap(bgimg0,"img"));

//创建分享的Dialog

share_intent = Intent.createChooser(share_intent, dialogTitle);

getActivity().startActivity(share_intent);

原生分享文字内容

/** * 分享文字内容 */

Intent share_intent = new Intent();

share_intent.setAction(Intent.ACTION_SEND);//设置分享行为

share_intent.setType("text/plain");//设置分享内容的类型

share_intent.putExtra(Intent.EXTRA_SUBJECT, contentTitle);//添加分享内容标题

share_intent.putExtra(Intent.EXTRA_TEXT, content);//添加分享内容

//创建分享的Dialog

share_intent = Intent.createChooser(share_intent, dialogTitle);

activity.startActivity(share_intent);

第一次写随笔,写的比较匆忙,欢迎批评建议。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值