微信分享,图标背景黑色问题解决
2017-08-10 本文已影响120人
我想吃碗牛肉面
背景
在做微信分享,分享带图标的链接时,并没有达到我们想要的效果,图标背景是黑色的,如下两张图。
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;
}