Android 原生分享图片文字到微信
分享纯文字
Activity代码使用
shareWechatFriend(MainActivity.this, "这里是分享的内容");
- 方法shareWechatFriend(Context context, String content)
//分享纯文本到微信/*** Context context* 分享的内容 content*/public void shareWechatFriend(Context context, String content) {if (PlatformUtil.isInstallApp(context, PlatformUtil.PACKAGE_WECHAT)) {Intent intent = new Intent();ComponentName cop = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");intent.setComponent(cop);intent.setAction(Intent.ACTION_SEND);intent.putExtra("android.intent.extra.TEXT", content);intent.putExtra("Kdescription", !TextUtils.isEmpty(content) ? content : "");intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);} else {ToastUtil.getInstance()._short(context, "您需要安装微信客户端");}}
分享图片就用项目中用到的分享二维码功能
- 生成二维码要一定导入zxing
zxing的GitHub地址:https://github.com/zxing/zxing
implementation 'com.google.zxing:core:3.2.1'
Activity代码使用
Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(),
QRcodeUtil.createQRCodeBitmap"二维码中的内容", 400, 400, "UTF-8", "L", "1", Color.BLACK, Color.WHITE), null, null));
shareWechatFriend(MainActivity.this, uri);
- 方法shareWechatFriend(Context context, Uri uri)
//分享图片到微信/*** Context context* 图片 uri*/public static void shareWechatFriend(Context context, Uri uri) {if (PlatformUtil.isInstallApp(context, PlatformUtil.PACKAGE_WECHAT)) {Intent intent = new Intent();ComponentName cop = new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");intent.setComponent(cop);intent.setAction(Intent.ACTION_SEND);intent.setType("image/*");intent.putExtra(Intent.EXTRA_STREAM, uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(Intent.createChooser(intent, "Share"));} else {ToastUtil.getInstance()._short(context, "您需要安装微信客户端");}}
- PlatformUtil
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;import java.util.List;public class PlatformUtil {public static final String PACKAGE_WECHAT = "com.tencent.mm";public static final String PACKAGE_MOBILE_QQ = "com.tencent.mobileqq";public static final String PACKAGE_SINA = "com.sina.weibo";// 判断是否安装指定apppublic static boolean isInstallApp(Context context, String app_package){final PackageManager packageManager = context.getPackageManager();List<PackageInfo> pInfo = packageManager.getInstalledPackages(0);if (pInfo != null) {for (int i = 0; i < pInfo.size(); i++) {String pn = pInfo.get(i).packageName;if (app_package.equals(pn)) {return true;}}}return false;}
}
- QRcodeUtil
import android.graphics.Bitmap;
import android.text.TextUtils;import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.WriterException;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;import java.util.Hashtable;public class QRcodeUtil {public static Bitmap createQRCodeBitmap(String content, int width, int height,String character_set, String error_correction_level,String margin, int color_black, int color_white) {// 字符串内容判空if (TextUtils.isEmpty(content)) {return null;}if (width =< 0 || height =< 0) {return null;}try {/** 1.设置二维码相关配置 */Hashtable<EncodeHintType, String> hints = new Hashtable<>();// 字符转码格式设置if (!TextUtils.isEmpty(character_set)) {hints.put(EncodeHintType.CHARACTER_SET, character_set);}// 容错率设置if (!TextUtils.isEmpty(error_correction_level)) {hints.put(EncodeHintType.ERROR_CORRECTION, error_correction_level);}// 空白边距设置if (!TextUtils.isEmpty(margin)) {hints.put(EncodeHintType.MARGIN, margin);}/** 2.将配置参数传入到QRCodeWriter的encode方法生成BitMatrix(位矩阵)对象 */BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, width, height, hints);/** 3.创建像素数组,并根据BitMatrix(位矩阵)对象为数组元素赋颜色值 */int[] pixels = new int[width * height];for (int y = 0; y < height; y++) {for (int x = 0; x < width; x++) {//bitMatrix.get(x,y)方法返回true是黑色色块,false是白色色块if (bitMatrix.get(x, y)) {pixels[y * width + x] = color_black;//黑色色块像素设置} else {pixels[y * width + x] = color_white;// 白色色块像素设置}}}/** 4.创建Bitmap对象,根据像素数组设置Bitmap每个像素点的颜色值,并返回Bitmap对象 */Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels, 0, width, 0, 0, width, height);return bitmap;} catch (WriterException e) {e.printStackTrace();return null;}}
}
最后不知道怎么结束!!
干就完了
Android 原生分享图片文字到微信相关推荐
- android原生分享功能,Android原生分享到微博、微信等平台的实现方式
在这个版本功能涉及到Android分享方式的变更,需求要求: 分享只支持新浪微博.微信,其他方式均去掉. 为了更好的测试还是要看下Android分享实现分享的方式,然后才能更好地评估测试时间和设计测试 ...
- 分享图片+文字到微信朋友圈
比较坑,昨天刚刚写好了用微信SDK Jar包分享的Dome,但是公司突然又要分享图片+文字,而且还不要网页式的分享,找了半天,发现直接用微信SDK无法做到这一点,所以就只能用Intent直接传值调用了 ...
- Android原生分享图片和视频
前言 由于之前的分享的平台都是固定的:微信,微信朋友圈,QQ,微博- 分享的做法就是,用列表分别显示各个平台,然后点击某个选项跳转到对应平台 代码如下: private void share(File ...
- android 代码分享图片不显示,android原生分享图片失败的问题
原生分享代码没有错,但是总是分享失败 Android分享图片的分享代码如下 public static void shareImages(Context context, ArrayList uriL ...
- Android快速分享文件/文字到QQ/微信
一般来说,要想分享文件/文字到微信朋友圈.QQ,都是需要接入微信.QQ的分享sdk;不过也有个快速分享到QQ.微信的小窍门,就是通过action 为"android.intent.actio ...
- Android 系统分享图片,文字
使用系统自带分享功能,分享图片文字 1.分享文本 //分享文字 public void shareText() {Intent shareIntent = new Intent();shareInte ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 哈夫曼编码开关 | 哈夫曼编码原理 | libjpeg-turbo 函数库 )
文章目录 一. 哈夫曼编码开关 二. 哈夫曼编码原理 三. libjpeg-turbo 函数库 四. libjpeg-turbo 函数库下载 [Android 内存优化]图片文件压缩 ( Androi ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( Bitmap_compress 方法解析 | Skia 二维图形库 | libjpeg 函数库 | libpng 函数库 )
文章目录 一. 图片质量压缩方法 二. Skia 二维图形库 三. libjpeg.libpng 函数库引入 在博客 [Android 内存优化]图片文件压缩 ( Android 原生 API 提供的 ...
- 【Android 内存优化】Android 原生 API 图片压缩原理 ( 图片质量压缩方法 | 查找 Java 源码中的 native 方法对应的 C++ 源码 )
文章目录 一. 图片质量压缩方法 二. 查找对应的 Native 方法源码 三. 分析 Bitmap.cpp 中动态注册 Native 方法 在博客 [Android 内存优化]图片文件压缩 ( An ...
最新文章
- 指定eclipse启动使用的jdk,路径有空格的情况
- 深度学习框架大PK:TNN决战MNN,ncnn依旧经典
- win2003系统+IIS6下,经常出现w3wp.exe和sqlserver.exe的内存占用居高不下
- (转)青春有限,走红有年
- SpringAMQP--入门案例的消息接收
- python3 socketserver源码解析_解读python中SocketServer源码
- 支付宝小程序组件库开发之省市区三级地址选择器组件
- Mandelbrot vs Julia
- Ubuntu18.04无法连接向日葵服务器的问题及解决
- Shell脚本应用之服务启动脚本
- paip.没有源码的情况下更改ASP.net ASPX页
- 数字电路-时序逻辑电路
- mobileu-vst声卡设置
- A micro Lie theory for state estimation in robotics005:The tangent spaces and the Lie algebra
- 智能|跟着美的集团学习VMI正确的打开方式
- 一种逐样本的偏AUC优化框架
- 【通識:人生哲學與幸福】青年心理學 Part2 成熟
- 实时语义分割网络 BiSeNet(附代码解读)
- Python入门三:安装Pyqt5
- FIR滤波器和IIR滤波器的区别和选择
热门文章
- html2canvas实现网页局部存为图片和打印
- UG NX二次开发(C#)-装配-删除阵列矩阵
- Kaldi中如何使用已经训练好的模型进行语音识别ASR呢?
- html网页抓取建一个网站前端,创建网页的方法以及生成HTML骨架
- iMindMap邀您一起“约惠”开学季
- “双月”数据集的生成
- Linux系统编程 | 01 -文件操作
- 测试2年6.5K,每天“911”,我的心酸经历只有我自己知道···
- (转)少儿编程这么火, 究竟学哪一种语言最靠谱?这篇文章说透了!
- ff6全部青魔法获得(不走兽之原)