黑白化
activity的实现
setContentView()后设置如下代码 可以基于基类Activity 也可单独设置某一个业务模块
Paint mPaint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0F);
mPaint.setColorFilter(new ColorMatrixColorFilter(cm));
getWindow().getDecorView().setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint);
ImageView的实现或者xml根布局实现
Kotlin版本
val mPaint = Paint()
val cm = ColorMatrix()
cm.setSaturation(0F)
mPaint.colorFilter = ColorMatrixColorFilter(cm)
xxxid.setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)
黑白化颜色的探究
方案一
val mPaint = Paint()
val cm = ColorMatrix()
cm.setSaturation(0F)
mPaint.colorFilter = ColorMatrixColorFilter(cm)
xxxId.setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)
方案二
val mPaint = Paint()
val cm = ColorMatrix()
cm.setYUV2RGB()
mPaint.colorFilter = ColorMatrixColorFilter(cm)
xxxId.setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)
方案三
val mPaint = Paint()
val cm = ColorMatrix()
cm.setRGB2YUV()
mPaint.colorFilter = ColorMatrixColorFilter(cm)
xxxId.setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)
方案四
val mPaint = Paint()
val cm = ColorMatrix()
val array: FloatArray = cm.array
array[0] = -1F
array[3] = 1F
array[4] = 1F
array[6] = -1F
array[8] = 1F
array[9] = 1F
array[12] = -1F
array[13] = 1F
array[14] = 1F
array[18] = 1F
mPaint.colorFilter = ColorMatrixColorFilter(cm)
xxxId.setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)
方案五
val mPaint = Paint()
val cm = ColorMatrix()
val array: FloatArray = cm.array
array[0]= 1.5F
array[1]= 1.5F
array[2]= 1.5F
array[4]= -1F
array[5]= 1.5F
array[6]= 1.5F
array[7]= 1.5F
array[9]= -1F
array[10]= 1.5F
array[11]= 1.5F
array[12]= 1.5F
array[14]= -1F
array[18]= 1F
mPaint.colorFilter = ColorMatrixColorFilter(cm)
xxxId.setLayerType(View.LAYER_TYPE_SOFTWARE, mPaint)