我要如何获取现有的位图

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.somebitmap);

并编写一个方法返回位图的变暗版本?
private Bitmap darkenBitMap(Bitmap bm) { }

到目前为止,我一直在尝试使用“绘画”和“ Canvas ”,但没有任何结果。

最佳答案

我终于明白了希望它可以帮助其他人。

private Bitmap darkenBitMap(Bitmap bm) {

    Canvas canvas = new Canvas(bm);
    Paint p = new Paint(Color.RED);
    //ColorFilter filter = new LightingColorFilter(0xFFFFFFFF , 0x00222222); // lighten
    ColorFilter filter = new LightingColorFilter(0xFF7F7F7F, 0x00000000);    // darken
    p.setColorFilter(filter);
    canvas.drawBitmap(bm, new Matrix(), p);

    return bm;
}

关于java - 如何使位图变亮或变暗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34562429/

10-10 08:17