微信分享網路圖片
阿新 • • 發佈:2019-02-12
最近專案中做到分享做到分享的時候發現微博,微信Demo只提供分享本地圖片的方式,作為一個老司機怎麼能忍,果斷祭出我的神器萬能的姑姑大神,最終功夫不負有心人完美實現分享。
對比微博微信分享網頁這一塊你會神器的發現二者居然驚人的相似,這裡我也不管誰抄襲誰了,老規矩直接上程式碼,微信分享如下:
/**
* 初始化WXWebpageObject物件填充url
*/
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = shareUrl;
/** * 用WXWebpageobject物件初始化一個WXMediaMessage物件,填寫標題,描述 */ WXMediaMessage msg = new WXMediaMessage(webpage); msg.title = title; msg.description = description; msg.thumbData = WX_Util.bmpToByteArray(bitmap, true); /** * 構造一個req */ SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("webpage"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneTimeline; api.sendReq(req); 不難發現最重要的還是得造一個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); } }
這樣就根據網路圖片url就完美的得到bitmap了,是不是感覺很簡單,在使用過程中遇到問題歡迎留言。