Android

Android代码修改图标颜色

2019-10-17  本文已影响0人  明日未期
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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读