新浪微博分享 SDK 图片大小限制

在使用安卓版新浪微博分享 SDK 中 WebpageObject 的分享图片时,缩略图和大图(均为 Bitmap 格式)的最大值分别为 32KB 和 2MB。

关于更多数据大小检查可以阅读 WeiboMultiMessage#checkArgs(),textObject,imageObject,mediaObject 的大小限制里面都有。

有两个设置图片的方法:

  • 设置缩略图:WebpageObject.setThumbImage(Bitmap);
  • 设置大图:WebpageObject.setImageObject(Bitmap);

缩略图的大小限制为 32KB,具体见 文档。注意,网页中的 “32kb” 是指 32KB。

注意:下面页面中的图片(这个小图是 SDK 自动将大图缩小后显示的)不是缩略图,缩略图具体是做什么用的,知道的同学麻烦赐教下:



我不是缩略图

Bitmap 裁减的代码参考如下:

        // 32KB, api doc:http:sinaweibosdk.github.io/weibo_android_sdk/doc/com/sina/weibo/sdk/api/BaseMediaObject.html#setThumbImage(Bitmap)
        int MAX_SIZE_THUMBNAIL_BYTE = 1 << 15;

        // 2MB, api doc: http://sinaweibosdk.github.io/weibo_android_sdk/doc/com/sina/weibo/sdk/api/ImageObject.html#imageData
        int MAX_SIZE_LARGE_BYTE = 1 << 21;

        Bitmap originalImg = BitmapFactory.decodeFile("/sdcard/test2.png");

        // thumbnail
        Bitmap thumbnailImg = originalImg;
        if (thumbnailImg.getByteCount() > MAX_SIZE_THUMBNAIL_BYTE) {

            double scale = Math.sqrt(1.0 * thumbnailImg.getByteCount() / MAX_SIZE_THUMBNAIL_BYTE);
            int scaledW = (int) (thumbnailImg.getWidth() / scale);
            int scaledH = (int) (thumbnailImg.getHeight() / scale);

            thumbnailImg = Bitmap.createScaledBitmap(originalImg, scaledW, scaledH, true);

            // 透明图片
            //             webPageObject.setThumbImage(Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888));

        }

        // large pic
        Bitmap largeImg = originalImg;
        if (largeImg.getByteCount() > MAX_SIZE_LARGE_BYTE) {
            double scale = Math.sqrt(1.0 * largeImg.getByteCount() / MAX_SIZE_LARGE_BYTE);
            int scaledW = (int) (largeImg.getWidth() / scale);
            int scaledH = (int) (largeImg.getHeight() / scale);

            largeImg = Bitmap.createScaledBitmap(originalImg, scaledW, scaledH, true);
        }

        WebpageObject webPageObject = new WebpageObject();
        webPageObject.setThumbImage(thumbnailImg);

        // code stuff

        ImageObject imageObject = new ImageObject();
        imageObject.setImageObject(largeImg);

        // code stuff
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值