如何在Android中实现分享图片功能

  介绍

本篇文章为大家展示了如何在Android中实现分享图片功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

调用方式:

Util.startShareImage(这),这为//当前的活动实例

<强>权限

记得添加文件操作权限,另外需要注意6.0版本以上的权限管理

& lt; uses-permission  Android: name=癮ndroid.permission.WRITE_EXTERNAL_STORAGE"/比;   & lt; uses-permission  android: name=癮ndroid.permission.READ_EXTERNAL_STORAGE"/祝辞

<强>具体细节见代码

/* *   ,*系统分享图片功能   ,* Created  by  wiky 提醒2018/1/13。   ,*/object  Util  {      fun 才能;startShareImage(活动:活动),{   ,,,//过滤出需要分享到对应的平台:微信好友,朋友圈,QQ好友只可自行修改   ,,,val  targetApp =,劳动力素质(“com.tencent.mm.ui.tools.ShareImgUI",,“com.tencent.mm.ui.tools.ShareToTimeLineUI",,“com.tencent.mobileqq.activity.JumpActivity")   ,,,/* *,*,分享图片,*/,,,val  bitmap =, getImageFromAssetsFile(活动,,“img_share.jpg"),//从资产目录中取到对应的文件,文件名自行修改   ,,,val  localImage =, saveBitmap(位图! !,,“share.jpg"),,//分享前,需要先将图片存在本地(记得添加权限),文件名自行修改   ,,,val  shareIntent =,意图(Intent.ACTION_SEND)   ,,,shareIntent.type =,“图像/*“,//设置分享内容的类型:图片   ,,,shareIntent.putExtra (Intent.EXTRA_STREAM, localImage)   ,,,try  {   ,,,,,val  resInfo =, activity.packageManager.queryIntentActivities (shareIntent, 0)   ,,,,,if  (! resInfo.isEmpty ()), {   ,,,,,,,val  targetedShareIntents =, ArrayList ()   ,,,,,,,for  (info  resInfo拷贝),{   ,,,,,,,,,val  targeted =,意图(Intent.ACTION_SEND)   ,,,,,,,,,targeted.type =,“图像/*“,//设置分享内容的类型   ,,,,,,,,,val  activityInfo =info.activityInfo   ,,,,,,,,,//如果还需要分享至其它平台,可以打印出具体信息,然后找到对应的活动名称,填入上面的数组中即可//,,,,,,,,,println (“package =, $ {activityInfo.packageName}, activity =, $ {activityInfo.name}“)      ,,,,,,,,,//进行过滤(只显示需要分享的平台)   ,,,,,,,,,if  (targetApp.any  {==,, it  activityInfo.name }), {   ,,,,,,,,,,,val  comp =, ComponentName (activityInfo.packageName, activityInfo.name)   ,,,,,,,,,,,targeted.component =广告样稿   ,,,,,,,,,,,targeted.putExtra (Intent.EXTRA_STREAM, localImage)   ,,,,,,,,,,,targetedShareIntents.add(目标)   ,,,,,,,,,}   ,,,,,,,}   ,,,,,,,val  chooserIntent =, Intent.createChooser (targetedShareIntents.removeAt(0),“选择要分享到的平台“)   ,,,,,,,if  (chooserIntent  !=, null), {   ,,,,,,,,,chooserIntent.putExtra (Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toTypedArray ())   ,,,,,,,,,activity.startActivity (chooserIntent)   ,,,,,,,}   ,,,,,}   ,,,},catch  (e:例外),{   ,,,,,Log.e (StatConstants.LOG_TAG,,“Unable 用share 形象,logs ,:,“, +, e.toString ())   ,,,}   ,,}      ,,/* *,*,从资产中读取图片,*/private 才能;fun  getImageFromAssetsFile(背景:,上下文,,文件名:,字符串):,位图?,{   ,,,var 形象:,位图吗?=,空   ,,,val  am =context.resources.assets   ,,,try  {   ,,,,,val  inputStream =, am.open(文件名)   ,,,,,image =, BitmapFactory.decodeStream (inputStream)   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android中实现分享图片功能