从数字数据生成彩色的android Bitmap

时间:2015-01-19 22:15:51

标签: android colors bitmap

假设我有一个整数数组,其值介于0到100之间。我想生成一个android.graphics.Bitmap,每个像素的颜色代表相应数组元素的数值。例如。假设我想为以下值范围提供以下位图颜色:0-25:红色,26-50:橙色,51-75:蓝色,76-100:紫色。我看到如何从数字数据创建像素图,但颜色当然不符合我的要求。

int[] data = new int[width*height];

[ ...Load data array (values 0-100) from file...]

// Can create a bitmap from data - but how to get wanted colors???
Bitmap bitmap = Bitmap.createBitmap(metrics, data, width, height, someConfig);

有人可以概述我需要采取的步骤,将原始值映射到适当的颜色吗?

谢谢! 汤姆

2 个答案:

答案 0 :(得分:0)

这样的事情:

int drawColor=Color.TRANSPARENT; //fallback
if(data[index]<=25)
    drawColor=Color.RED;
else if(data[index]<=50)
    drawColor=0xFFFF9900;
else if(data[index]<=75)
    drawColor=Color.BLUE;
else if(data[index]<=100)
    drawColor=0xFF8000FF;
bitmap.setPixel(x, y, drawColor);

答案 1 :(得分:0)

如果您关心颜色和值的变化比例,请参阅

http://www.cs.uml.edu/~haim/ColorCenter/ColorCenterColormaps.htm