API级别<26的Color.valueOf的替代方法?

时间:2018-08-26 14:41:19

标签: android colors bitmap

我目前正在使用位图,并尝试对像素进行一些操作。我想使用Color.argb()Color.valueOf(),但是它们对于API Level <26无效。

是否存在任何适用于21级以上API的库或类似内容?

这是我使用的功能的一部分:

int width =  myBitmap.getWidth();
int height = myBitmap.getHeight();
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
int [] allpixels = new int [ bmp.getHeight()*bmp.getWidth()];
myBitmap.getPixels(allpixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(),bmp.getHeight());
bmp.setPixels(allpixels, 0, width, 0, 0, width, height);

for(int i =0; i<bmp.getHeight()*bmp.getWidth();i++) {
    allpixels[i] = Color.argb(
        Color.valueOf(allpixels[i]).red(),
        Color.valueOf(allpixels[i]).red(),
        Color.valueOf(allpixels[i]).green(),
        Color.valueOf(allpixels[i]).blue());
}

1 个答案:

答案 0 :(得分:3)

使用the version of argb() that takes int instead of float。从API级别1开始就存在这种情况。