一个方法教你代码中动态修改图片颜色
在项目开发中,可能会碰到需要根据状态显示不同颜色的指示图标,遇到这种需求,一般的处理,就是让设计根据已有的状态生成不同颜色的切图。 但是这种解决方案并不灵活,万一碰到状态增加或者配色方案的修改,可能又需要重新切图。 这里附上一个在代码中动态去替换图标颜色的方案。
public static Bitmap getAlphaBitmap(Bitmap mBitmap,int mColor) {
Bitmap mAlphaBitmap = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas mCanvas = new Canvas(mAlphaBitmap);
Paint mPaint = new Paint();
mPaint.setColor(mColor);
//从原位图中提取只包含alpha的位图
Bitmap alphaBitmap = mBitmap.extractAlpha();
//在画布上(mAlphaBitmap)绘制alpha位图
mCanvas.drawBitmap(alphaBitmap, 0, 0, mPaint);
return mAlphaBitmap;
}
提示: 这种方案只适合纯色或者色彩方案单一的图标,复杂图案并不适用