在项目中,我们拿到的网络图可能是透明的,但又要求我们显示白色背景。
当然处理的方法很多,如给控件添加背景色,或者通过两个控件叠加来显示等等,这里我记录我使用的别的方法。
方法1(此方法仅适用于纯色图片。相信我,不是纯色图片不要使用,不然上线后你可能要卷铺盖走人了):
变量每一个像素点,把对应的旧颜色替换为新的颜色
/**
* 建议只能是纯色png图片,不然会造成图片像素或显示极度模糊
* 将bitmap中的某种颜色值替换成新的颜色
* @param oldBitmap
* @param oldColor
* @param newColor
* @return
*/
public static Bitmap replaceBitmapColor(Bitmap oldBitmap,int oldColor,int newColor)
{
//相关说明可参考 http://xys289187120.blog.51cto.com/3361352/657590/
Bitmap mBitmap = oldBitmap.copy(Bitmap.Config.ARGB_8888, true);
//循环获得bitmap所有像素点
int mBitmapWidth = mBitmap.getWidth();
int mBitmapHeight = mBitmap.getHeight();
G.look("mBitmapWidth: "+mBitmapWidth);
G.look("mBitmapHeight: "+mBitmapHeight);
for (int i = 0; i < mBitmapHeight; i++) {
for (int j = 0; j < mBitmapWidth; j++) {
//获得Bitmap 图片中每一个点的color颜色值
//将需要填充的颜色值如果不是
//在这说明一下 如果c