Android 分享-给小白总结

前言

分享很简单。但是是个非常烦人的东西,说简单很简单,但是很耗时,如果有一些精细化的东西在里面。所以这个东西总结出来,节省时间

分享(很烦的一件事,但是做好了可以省很多事)

微信

  • 压缩图片
 private byte[] bmpByteArray(final Bitmap bitmap,final boolean needRecycle) {
  ByteArrayOutputStream output=new ByteArrayOutputStream();//定义一个字节数组输出流对象,用于接收转换后二进制的结果
  bitmap.compress(Bitmap.CompressFormat.PNG, 100,output);//把二进制的结果放在output对象中
  if (needRecycle) {
   bitmap.recycle();//释放图片资源的内存
  }
  byte [] result=output.toByteArray();//把output对象转化成实际的数组
  try {
   output.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return result;
 }
  • 媒体分享
//第一步创建:WXVideoObject对象,用来指定音频的Url
        WXVideoObject videoObject=new WXVideoObject();
        videoObject.videoUrl="http://v.youku.com/v_show/id_XODkyNjAyMzg4.html";//http://startv.m.yinyuetai.com/v2-1/app/share.html?videoId=1987&channelId=82&from=singlemessage
        //第二步:创建WXMediaMessage对象
        WXMediaMessage msg=new WXMediaMessage();
        msg.mediaObject=videoObject;
        msg.title="Mikyou最爱之---秦时明月之帝子降兮";
        msg.description="唯美中国风";
        //第三步指定缩略图:
        Bitmap thmuBitmap=BitmapFactory.decodeResource(mActivity.getResources(), R.drawable.splash);
        Bitmap thBitmap=Bitmap.createScaledBitmap(thmuBitmap, 120, 120, true);//注意:压缩的缩略图的尺寸有限制(视频的缩略图尺寸不能超过:120*120),否则后面的api.sendReq(req)会返回false
        msg.thumbData=bmpByteArray(thBitmap, true);
  • 分享URL图片
 public boolean shareWechatWithNetUrlPic(final int mFlag) {
        final IWXAPI api = WXAPIFactory.createWXAPI(mActivity, AppSetting.WEIXIN_APP_ID, false);
        api.registerApp(AppSetting.WEIXIN_APP_ID);
        if (!api.isWXAppInstalled()) {
            ToastUtils.showWarnToast("手机中没有安装微信客户端");
            return false;
        }
        ToastUtils.showSuccessToast(mActivity.getResources().getString(R.string.share_go_to));

        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                //初始化一个wxwebpageobject对象  填写url
                WXWebpageObject webpageObject = new WXWebpageObject();
                webpageObject.webpageUrl = getShareUrl();
                //用wxwebpageobject对象初始化一个wxmediamessage对象 填写标题 描述
                WXMediaMessage msg = new WXMediaMessage(webpageObject);
                msg.title = getShareDescription();
                msg.description = getShareDescription();
                Bitmap thumb = BitmapFactory.decodeResource(mActivity.getResources(), R.mipmap.ic_launcher);

                WXImageObject imageObject=new WXImageObject();
                //设置Url
                imageObject.imagePath=mImageIconUrl;

                Bitmap bitmap= null;//用网络流获取图片
                try {
                    bitmap = BitmapFactory.decodeStream(new URL(mImageIconUrl).openStream());
                } catch (IOException e) {
                    YYTLog.e("test---"+e.getMessage());
                }
                Bitmap thBitmap=Bitmap.createScaledBitmap(bitmap, 120, 65, true);
                bitmap.recycle();//释放图像所占用的图片内存资源
                msg.thumbData=bmpByteArray(thBitmap, true);//设置缩略图
                //构造一个req
                SendMessageToWX.Req req = new SendMessageToWX.Req();
                req.transaction = buildTransaction("yyt_share", 1);
                req.message = msg;
                req.scene = mFlag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
                //调用api接口发送数据到微信
                api.sendReq(req);
            }
        });
        thread.start();
        return true;
    }

ps:比例不能超过150,否则分享不出去。

微博

QQ

待续。。。

你可能感兴趣的:(Android 分享-给小白总结)