import android.graphics.*;
public class ChangeColor
{
public static Bitmap changeColor(Bitmap bitmap, String color)
{
if(bitmap == null || bitmap.isRecycled())
{
}
Bitmap mBitmap = null;
int mColor;
try
{
mColor = Color.parseColor(color);
//按照图标大小创建数组
int mBitmapWitdh = bitmap.getWidth();
int mBitmapHeight = bitmap.getHeight();
int[] mPixels = new int[mBitmapWitdh * mBitmapHeight];
//循环 bitmap 每个像素点 查看alpha值
int count = 0;
for(int i = 0; i < mBitmapHeight; i++)
{
for(int j = 0; j < mBitmapWitdh; j++)
{
//获得bitmap每个像素点的color
int perColor = bitmap.getPixel(j, i);
int a = Color.alpha(perColor);
if(a!=0)
{
mPixels[count] = mColor;
}
else {
mPixels[count] = Color.parseColor("#00000000");
}
count++;
}
}
mBitmap = Bitmap.createBitmap(mBitmapWitdh, mBitmapHeight, Bitmap.Config.ARGB_8888);
mBitmap.setPixels(mPixels, 0, mBitmapWitdh, 0, 0, mBitmapWitdh, mBitmapHeight);
}
catch(Exception e){
mBitmap = bitmap;
}
return mBitmap;
}
}
网友评论