微信分享,圖示背景黑色問題解決
阿新 • • 發佈:2018-12-25
背景
在做微信分享,分享帶圖示的連結時,並沒有達到我們想要的效果,圖示背景是黑色的,如下兩張圖。
而我們要的效果是這樣的:
下來我們想辦法給該圖示背面加一層白色背景。
XML方法解決
這裡用到了Drawable Resources 裡的layer list知識。
res/drawable/layer_icon.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@color/white"/>
<item
android:drawable="@drawable/icon" />
</layer-list>
在分享時這樣獲取bitmap即可:
Bitmap bitmap = BitmapUtil.getBitmapFromResources(this,R.drawable.layer_icon);
Java方法解決
此方法主要針對該圖示不在本地res裡,而是線上獲取的。需要注意的是以下方法中bitmap引數,最好也是200*200的大小,也是ARGB_8888的點陣圖畫素配置。
/**
* 把bitmap畫到一個白底的newBitmap上,將newBitmap返回
* @param context 上下文
* @param bitmap 要繪製的點陣圖
* @return Bitmap
*/
public static Bitmap drawableBitmapOnWhiteBg(Context context,Bitmap bitmap){
Bitmap newBitmap = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(newBitmap);
canvas.drawColor(context.getResources().getColor(android.R.color.white));
Paint paint=new Paint();
canvas.drawBitmap(bitmap, 0, 0, paint); //將原圖使用給定的畫筆畫到畫布上
return newBitmap;
}