从数值数据生成彩色 android 位图
Generate colored android Bitmap from numeric data
假设我有一个整数数据数组,值范围从 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);
有人可以概述我需要采取的步骤,将原始值映射到适当的颜色吗?
谢谢!
汤姆
像这样:
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);
如果你关心颜色和数值的变化比例,参考
http://www.cs.uml.edu/~haim/ColorCenter/ColorCenterColormaps.htm
假设我有一个整数数据数组,值范围从 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);
有人可以概述我需要采取的步骤,将原始值映射到适当的颜色吗?
谢谢! 汤姆
像这样:
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);
如果你关心颜色和数值的变化比例,参考
http://www.cs.uml.edu/~haim/ColorCenter/ColorCenterColormaps.htm