使用Intent完成一键分享图文
来源:互联网 发布:淘宝退货率手机哪里看 编辑:程序博客网 时间:2024/05/18 00:02
使用Intent完成一键分享图文
最牛的效果是做到图文都可以发送,如下::
上面的是用腾讯新闻界面的分享按钮发送的,包含分享、收藏、查看,以及一张封面图、标题和内容文字等布局。
本文并没有做到这个程度,只是做一个记录,以后碰到再学习,也欢迎高人指点。
1. 使用第三方SDK
推荐SDK有如shareSDK等,获取Appkey,按照说明应用即可,分享的界面一般来说无法修改。
2. 使用Intent
2.1 Intent完成文字发送
Intent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.setType("text/plain");sendIntent.putExtra(Intent.EXTRA_TEXT,"This is text to show.");shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(shareIntent, "分享到"));
分享时,该方法会自动搜索手机内可以支持该type的所有应用。
2.2 Intent完成单张图片发送
方法1:
- 仅用于尝试,因此起初打算发App内部的Assets中的图片,尝试了以下方法:
Intent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.setType("image/*");Uri uri = Uri.parse("file:///android_asset/ic_launcher");//或者ic_launcher.png都不行sendIntent.putExtra(Intent.EXTRA_STREAM,uri);shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(shareIntent, "分享到"));
提示找不到文件或者文件无效。
- 寻找相册内图片发送:
Uri uriPic = Uri.fromFile(new File("content://media/external/images/media/system/"+ "media/Preloaded/Pictures/Picture_A_Skyscraper.jpg"));sendIntent.putExtra(Intent.EXTRA_STREAM,uriPic);shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(shareIntent, "分享到"));
仍然提示找不到文件或者文件无效。
- 将Asset内图片在相册复制一份缩略图后发送:
InputStream is;Bitmap bitmap = null;try { is = getAssets().open("ic_launcher.png"); bitmap = BitmapFactory.decodeStream(is);} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.err.println("no such file error");}Uri uri = Uri.parse(MediaStore.Images.Media.insertImage( getContentResolver(), bitmap, "ic_launcher.png", null)); sendIntent.putExtra(Intent.EXTRA_STREAM,uri);shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(shareIntent, "分享到"));
这种方法是对的,会在相册生成该图的缩略图,然后发送。
所以问题来了,我之前在Asset和相册中发送不成功的原因很可能是路径原因,希望有读到此文的高手指点一下,如何分享相册内图片或完成相册内部的分享照片功能。
方法2:
找到单张图片的绝对路径也是可以行得通,之前提示无文件或该文件无效基本都是由于路径问题,将图片放入SD卡中,由于系统不同,绝对路径可能不同,可以进入手机的SD卡路径下,查看该图片的详细信息,会显示绝对路径,将该路径写入程序中的File路径就可以:
String fileName = "storage/sdcard1/DCIM/Camera/q1.png";File file = new File(fileName); shareIntent.setType("image/*"); shareIntent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(Intent.createChooser(shareIntent, "分享到"));
实测通过
2.3 Intent完成多张图片发送
暂未实现
2.4 Intent完成图片+文字发送
暂未实现
0 0
- 使用Intent完成一键分享图文
- Android中使用新浪微博SDK完成分享图文
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、微信等
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、微信等
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、微信等
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、人人等
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、人人等
- 使用Intent分享数据
- Android中使用腾讯的SDK完成分享图文到qq空间
- 一键GHOST使用图文教程
- Android分享之Intent.ACTION_SEND分享(一)
- android使用intent实现分享操作
- 一键分享图文到多个社交平台(微信,微博,qzone)
- Android使用sharesdk一键分享
- Android使用sharesdk一键分享
- Android 使用combox实现一键分享
- 使用快启动一键重装系统详细图文教程
- php使用分享(一)
- 【Java编程思想】(2)访问权限控制
- mysql 多条件排序查询
- CSS 相对/绝对(relative/absolute)定位系列(二)
- 【流媒体学习】live555学习(二):基础类
- 大数加法
- 使用Intent完成一键分享图文
- Linux 配置samba
- Localization and Storyborad
- Android学习 - Android优化浅析
- java实现网络监听
- 为什么深圳成指关注度远远小于上证指数?
- 理解 Array.prototype.slice.apply
- 受网友欢迎的HTML5资料(珍藏版)
- grid control 11.1.0.1 安装指南