假设我有一个整数数组,其值介于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);
有人可以概述我需要采取的步骤,将原始值映射到适当的颜色吗?
谢谢! 汤姆
答案 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