问题描述
在棒棒糖之前的设备上有一些关于在我的图像视图上设置灰度的问题。 具体来说,在使用以下代码将imageview转换为灰度后设置透明度:
public static void setGrayScale(ImageView view) {
Paint paint = new Paint();
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
paint.setColorFilter(filter);
view.setLayerType(View.LAYER_TYPE_HARDWARE, paint);
}
在5.0或更高版本的设备上,图像会转换为灰度,然后应用alpha值,从而获得美观的图像。
在5.0之前的设备(特别是Nexus 4和4.2.2)上,似乎未遵循Alpha值,而是显示了较深的灰色。
有谁知道为什么会发生这种现象? 这是完全相同的setAlpha值(0.6f)。 我尝试了各种应用灰度的方法,并且还尝试将setAlpha设置为无效。
1楼
我认为原因是Lollipop改变了ColorMatrixColorFilter类的实现,正如您在看到的 。
解决问题的方法是,在上面的values-v21
文件夹中为棒棒糖设置不同的值,并在values
里面设置棒棒糖之前的values
。