你好,歡迎來到IOS教程網

 Ios教程網 >> IOS使用技巧 >> IOS7技巧 >> 安卓開發之如何在微信分享中加載網絡圖片作為縮略圖

安卓開發之如何在微信分享中加載網絡圖片作為縮略圖

編輯:IOS7技巧
下面我們來看一篇關於安卓開發之如何在微信分享中加載網絡圖片作為縮略圖的例子,希望這篇文章能夠為各位帶來幫助。

這幾天在做的一個項目是有一個分享到微信的功能,要實現在分享中添加標題、描述、鏈接、縮略圖實現分享。先來看一下官方的API文檔:

網頁類型分享示例:

//初始化一個WXWebpageObject對象,填寫url
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "網頁url";
//用WXWebpageObject對象初始化一個WXMediaMessage對象,填寫標題、描述
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "網頁標題";
msg.description = "網頁描述";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);
 //構造一個Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");//transaction字段用於唯一標識一個請求
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
//調用api接口發送數據到微信
api.sendReq(req);

縮略圖的設置,就是這一行代碼:

msg.thumbData=某bitmap
可見,官方的API只提供了加載本地資源圖片的示例,並沒有給出加載網絡圖片作為縮略圖的示例代碼,當然也很容易實現,只要我們把網絡圖片轉換為Bitmap對象就可以了,可是,當我使用自定義的Bitmap時候,卻總是報錯,並且報錯也不給出任何提示信息,最後才知道微信分享縮略圖(thumb)最大64KB,居然有這麼一個限制,所以只好做一些處理了。所有實現代碼如下:

網絡圖片轉換為Bitmap對象代碼:

/**
 * 把網絡資源圖片轉化成bitmap
 * @param url  網絡資源圖片
 * @return  Bitmap
 */
public static Bitmap GetLocalOrNetBitmap(String url) {
    Bitmap bitmap = null;
    InputStream in = null;
    BufferedOutputStream out = null;
    try {
        in = new BufferedInputStream(new URL(url).openStream(), 1024);
        final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
        out = new BufferedOutputStream(dataStream, 1024);
        copy(in, out);
        out.flush();
        byte[] data = dataStream.toByteArray();
        bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
        data = null;
        return bitmap;
    } catch (IOException e) {
        e.printStackTrace();
        return null;
    }
}

private static void copy(InputStream in, OutputStream out)
        throws IOException {
    byte[] b = new byte[1024];
    int read;
    while ((read = in.read(b)) != -1) {
        out.write(b, 0, read);
    }
}

然後把示例代碼裡的那兩行改為如下即可:

Bitmap thumb =Bitmap.createScaledBitmap(GetLocalOrNetBitmap("某網絡資源圖片"), 120, 120, true);//壓縮Bitmap
msg.thumbData = Util.bmpToByteArray(thumb, true);

問題解決,成功實現微信分享。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved