装X神器微信朋友圈小尾巴
@Author GQ 2017年01月06日
今天无意中翻了翻旧项目,发现有个装X神器—微信小尾巴
谁还没个年轻的时候,顺便重新整理了下代码, 也重温一些知识点
效果图
- 朋友圈
- 私聊
重要说明
- 不是第三方工具修改,正常使用微信公众平台的分享功能实现
- 需要在微信公众平台创建自己的应用和图标等,在项目中使用自己的微信appId
知识点
- 使用微信分享SDK
- 本地图片选择和真实路径转换
- 鲁班图片压缩策略(仿微信压缩策略)
- 计算图片大小工具类
SnackBar
的简单使用- 发现了一个微信分享页面的隐藏功能!!!
遇到的问题
- 缩略图<32K,不然无法分享
- 微信Demo中的
bmpToByteArray
方法导致分享失败问题,需要改造
微信bmpToByteArray方法替换
//方法来自网络资料,亲测可用
public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
int i;
int j;
if (bmp.getHeight() > bmp.getWidth()) {
i = bmp.getWidth();
j = bmp.getWidth();
} else {
i = bmp.getHeight();
j = bmp.getHeight();
}
Bitmap localBitmap = Bitmap.createBitmap(i, j, Bitmap.Config.RGB_565);
Canvas localCanvas = new Canvas(localBitmap);
while (true) {
localCanvas.drawBitmap(bmp, new Rect(0, 0, i, j), new Rect(0, 0, i, j), null);
if (needRecycle) {
bmp.recycle();
}
ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
localBitmap.compress(Bitmap.CompressFormat.JPEG, 100,
localByteArrayOutputStream);
localBitmap.recycle();
byte[] arrayOfByte = localByteArrayOutputStream.toByteArray();
try {
localByteArrayOutputStream.close();
return arrayOfByte;
} catch (Exception e) {
}
i = bmp.getHeight();
j = bmp.getHeight();
}
}
分享跳转到微信页面后隐藏功能
随便选一张图片先跳转到微信分享页面,然后长按图片拖动到最下方删除
然后点击红框内位置会弹出自带的分享,然后可以拍照,可以选择多图
请自行装B