我的Android Tide应用程序显示从.KAP文件中获取的海图。这种文件格式使用四位调色板显示系统,仅使用10种颜色。我的应用程序将该文件格式解码为一个四位颜色数组,并按以下方式在显示器上显示其中一部分:
for (displayLineNum = 1; displayLineNum < displayHeight; displayLineNum++)
{ for (displayDotNum = 1; displayDotNum < displayWidth; displayDotNum++)
{ color = colors [lineIndex-1][dotIndex-1];
switch (color)
{ case 1: displayCanvas.drawPoint(displayDotNum, displayLineNum, color1); break;
case 2: displayCanvas.drawPoint(displayDotNum, displayLineNum, color2); break;
case 3: displayCanvas.drawPoint(displayDotNum, displayLineNum, color3); break;
case 4: displayCanvas.drawPoint(displayDotNum, displayLineNum, color4); break;
case 5: displayCanvas.drawPoint(displayDotNum, displayLineNum, color5); break;
case 6: displayCanvas.drawPoint(displayDotNum, displayLineNum, color6); break;
case 7: displayCanvas.drawPoint(displayDotNum, displayLineNum, color7); break;
case 8: displayCanvas.drawPoint(displayDotNum, displayLineNum, color8); break;
case 9: displayCanvas.drawPoint(displayDotNum, displayLineNum, color9); break;
case 10: displayCanvas.drawPoint(displayDotNum, displayLineNum, color10); break;
default: displayCanvas.drawPoint(displayDotNum, displayLineNum, color1); break;
}
}
}
display_area.setImageBitmap(displayBitmap);
有10种预设的颜色,具有显示所需的RGB代码。但每个像素都必须使用displayCanvas.drawPoint函数单独绘制。这样虽然可以工作,但速度非常缓慢。 我宁愿在调用显示方法的另一侧预先设置调色板代码,并传入调色板值。这样能够更快地运行,但我找不到使用可用显示调用实现此功能的方法。 虽然可以使用Android函数来评估图像并获取其调色板等信息,但我不知道如何有效地显示调色板图像。每个像素都会从4位像素代码放大到16位RGB565代码,以便传递普通位图。还有其他什么方法可以实现这个,谢谢。