Android分享微信小程序技巧之圖片優(yōu)化
前言
小菜上周接入了微信分享小程序的入口,基本功能實現(xiàn)都沒問題,有需要的朋友可以了解一下 Android 分享微信小程序失敗二三事,雖然功能都正常,但整體測試發(fā)現(xiàn)圖片展示效果不佳。于是小菜整理了一個簡單的小方法處理一下圖片!
微信規(guī)定,分享小程序展示的圖片應(yīng)該在 128KB 以內(nèi),同時圖片默認(rèn)展示比例為 5:4,這樣小菜默認(rèn)的圖很多是豎直的圖,只會展示一部分。
遮擋部分圖片
規(guī)定
小菜嘗試了圖片的【等比壓縮】【非等比壓縮】和【不壓縮】,效果依舊不合適,圖片所占位置默認(rèn)以橫向方向填充滿分享出的布局。于是小菜決定重新用 Canvas 繪制一張圖,將所要展示的圖片居中展示,整理方法如下:
public static Bitmap drawWXMiniBitmap(Bitmap bitmap, int width, int height) { Bitmap mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); // 用這個Bitmap生成一個Canvas,然后canvas就會把內(nèi)容繪制到上面這個bitmap中 Canvas mCanvas = new Canvas(mBitmap); // 繪制畫筆 Paint mPicturePaint = new Paint(); // 繪制背景圖片 mCanvas.drawBitmap(mBitmap, 0.0f, 0.0f, mPicturePaint); // 繪制圖片的寬、高 int width_head = bitmap.getWidth(); int height_head = bitmap.getHeight(); // 繪制圖片--保證其在水平方向居中 mCanvas.drawBitmap(bitmap, (width - width_head) / 2, (height - height_head) / 2, mPicturePaint); // 保存繪圖為本地圖片 mCanvas.save(); mCanvas.restore(); return mBitmap; }
小菜測試時發(fā)現(xiàn),很多圖片的尺寸大小和寬高比并非固定的,為了適配整體展示效果,當(dāng)寬高比小于1時,根據(jù)圖片高度來計算整體繪制 Bitmap 寬,Bitmap 可以根據(jù)需求展示相應(yīng)的本地資源圖或網(wǎng)絡(luò)圖,寬高可以直接設(shè)置 5:4 大小,小菜測試 width = 300; height = 240 整體效果較為合適。大家可以根據(jù)個人需求自定義圖片樣式。
Bitmap bitmap = BitmapUtil.drawWXMiniBitmap(bitmap, bitmap.getHeight() * 5 / 4, bitmap.getHeight()); if (BitmapUtil.isOverSize(bitmap, 128)) { bitmap = Utils.resizeBitmap(bitmap, 300, 240); }
Tips: 繪制完成之后的圖會比原圖大,所以需要先繪制圖片,再判斷圖片是否超過 128KB。若超過 128KB 需要進行壓縮,公共的方法暫時就省略啦!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Adapter實現(xiàn)ListView帶多選框等狀態(tài)的自定義控件的注意事項
Android本身為ListView提供了幾個方便的Adapter,比如ArrayAdapter、SimpleCurrentAdapter等等,接下來介紹自定義Adapter實現(xiàn)ListView帶多選框等狀態(tài)控件的注意事項,感興趣的朋友可以詳細了解下,或許對你有所幫助2013-01-01移動端android上line-height不居中的問題的解決
現(xiàn)在越來越多的移動界面使用rem適配,最近發(fā)現(xiàn)了移動端android上line-height不居中的問題,今日就來介紹一下解決的方法,非常具有實用價值,需要的朋友可以參考下2018-03-03flutter開發(fā)技巧自定頁面指示器PageIndicator詳解
這篇文章主要為大家介紹了flutter開發(fā)技巧自定頁面指示器PageIndicator詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01在Flutter中制作翻轉(zhuǎn)卡片動畫的完整實例代碼
最近Flutter的勢頭是越來越猛了,作為一個Android程序猿,我自然也是想要趕緊嘗試一把,這篇文章主要給大家介紹了關(guān)于在Flutter中制作翻轉(zhuǎn)卡片動畫的相關(guān)資料,需要的朋友可以參考下2021-10-10