装X神器微信朋友圈小尾巴

装X神器微信朋友圈小尾巴

@Author GQ 2017年01月06日

今天无意中翻了翻旧项目,发现有个装X神器—微信小尾巴

谁还没个年轻的时候,顺便重新整理了下代码, 也重温一些知识点

效果图

  • 朋友圈

装X神器微信朋友圈小尾巴_第1张图片

  • 私聊
    装X神器微信朋友圈小尾巴_第2张图片

重要说明

  • 不是第三方工具修改,正常使用微信公众平台的分享功能实现
  • 需要在微信公众平台创建自己的应用和图标等,在项目中使用自己的微信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

装X神器微信朋友圈小尾巴_第3张图片

项目地址

https://gitee.com/madaigou/spacecode

你可能感兴趣的:(安卓)