# spacecode **Repository Path**: madaigou/spacecode ## Basic Information - **Project Name**: spacecode - **Description**: 微信装X利器 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2016-03-03 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## spacecode :fa-user: 麻袋狗 # 装X神器微信朋友圈小尾巴 >@Author GQ 2017年01月06日 > >今天无意中翻了翻旧项目,发现有个装X神器—微信小尾巴 > >谁还没个年轻的时候,顺便重新整理了下代码, 也重温一些知识点 ## 效果图 - 朋友圈 ![WX20180106-121141@2x](screenshot/3.png) - 私聊 ![WX20180106-121433@2x](screenshot/4.png) ## 重要说明 - 不是第三方工具修改,正常使用微信公众平台的分享功能实现 - 需要在微信公众平台创建自己的应用和图标等,在项目中使用自己的微信appId ## 知识点 - 使用微信分享SDK - 本地图片选择和真实路径转换 - 鲁班图片压缩策略(仿微信压缩策略) - 计算图片大小工具类 - `SnackBar` 的简单使用 - 发现了一个微信分享页面的隐藏功能!!! ## 遇到的问题 - 缩略图<32K,不然无法分享 - 微信Demo中的 `bmpToByteArray` 方法导致分享失败问题,需要改造 ## 微信bmpToByteArray方法替换 ```java //方法来自网络资料,亲测可用 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 ![1](screenshot/1.png)