我使用GridView显示更多的30张图片(一列中有5张图片)。我发现当我在主线程中使用ImageView.setAlpha()函数时,GridView滚动的流动性变差了。
因此,我想使用ColorMatrix产生与setAlpha()函数相同的效果。这是我的代码,
Bitmap resultBitmap = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight());
Bitmap mutableBitmap = resultBitmap.copy(Bitmap.Config.ARGB_8888, true);
// ColorMatrix
float[] colorMatrix = new float[] {
1, 0, 0, 0, 0, //red
0, 1, 0, 0, 0, //green
0, 0, 1, 0, 0, //blue
0, 0, 0, A, 0 //alpha
};
colorFilter = new ColorMatrixColorFilter(colorMatrix);
Paint paint = new Paint();
paint.setColorFilter(colorFilter);
Canvas canvas = new Canvas(mutableBitmap);
canvas.drawBitmap(mutableBitmap, 0, 0, paint);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
我读了几段代码说上面的代码可以产生相同的功能。我已经尝试了几个A的值。但是,我找不到想要的效果。
当A为1时,相同的图片。 当A为0时,全黑。 当A为0.5时,变暗。从理论上讲,它应该变得更轻。
你知道这个问题吗?