zoukankan      html  css  js  c++  java
  • Android 微信分享图片

    private String APP_ID = "00000000000000000"; //微信 APPID
    private IWXAPI iwxapi;
    private void regToWx() {
        iwxapi = WXAPIFactory.createWXAPI(context, APP_ID, true);//这里context记得初始化
        iwxapi.registerApp(APP_ID);
    }
    IMServer.getDiskBitmap(IMServer.url);

    这个是我写的 一个从内存卡读取照片的类..   可根据自己需求更改

    private void wxShare() {
        Bitmap bp = IMServer.getDiskBitmap(IMServer.url);
        WXImageObject wxImageObject = new WXImageObject(bp);
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = wxImageObject;
        //设置缩略图
        Bitmap mBp = Bitmap.createScaledBitmap(bp, 120, 120, true);
        bp.recycle();
        msg.thumbData = bmpToByteArray(mBp, true);
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("img");//  transaction字段用
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;
        iwxapi.sendReq(req);
    }

    我先上代码,我们看看上面的代码..设置缩略图那

    官方给的 代码是  

    msg.thumbData = Util.bmpToByteArray(thumbBitmap, true);

    然后Util类,居然找不到(我用了qq的jar包,只能在这里找到.....)

    所以我只能去demo里面找,然后把bmpToByteArray方法提取出来,如下

    public static byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
        if (needRecycle) {
            bmp.recycle();
        }
    
        byte[] result = output.toByteArray();
        try {
            output.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    然后再往下看,

      req.transaction = buildTransaction("img");//  transaction字段用

    很明显  后面的是一个方法, 官方也没给出...   老方法 ,去demo里面找,如下

    private String buildTransaction(final String type) {
        return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
    }
  • 相关阅读:
    漫步温泉大道有感
    不可多得的”魔戒“:一堂成功学大师们的浓缩课
    四川新闻网关于IT诗人的报道
    赠徐蕴筝(帮别人名字作诗)
    再游草堂
    赠申芳菲(帮别人名字作诗)
    Oracle内部错误:ORA00600[15801], [1]一例
    Oracle内部错误:ORA00600[OSDEP_INTERNAL]一例
    Oracle O立方服务平台(O3SP)
    Oracle RAC内部错误:ORA00600[keltnfyldmInit]一例
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/7872318.html
Copyright © 2011-2022 走看看