1. 程式人生 > >微信分享,圖示背景黑色問題解決

微信分享,圖示背景黑色問題解決

背景
在做微信分享,分享帶圖示的連結時,並沒有達到我們想要的效果,圖示背景是黑色的,如下兩張圖。

而我們要的效果是這樣的:

下來我們想辦法給該圖示背面加一層白色背景。



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; }