我有一个医疗设备发送像素的值,以便绘制为图像(帧后帧)。 我需要拍摄像素并在屏幕上构建一个图像。目前使用我编写的代码,我设法获得2fps的图像大小为800x600。
在屏幕上绘制图像的最快方法是什么?并且不断地做。
Bitmap mBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
Canvas c = new Canvas(mBitmap);
Paint paint = new Paint();
int[] colorMatrix = new int[width * height];
for (int i = 0; i < imageXY.length; i++) {
int indexValue = Integer.parseInt(strValueIndex[i]);
int pixelValue = Integer.parseInt(imageValue[indexValue - 1]);
int pixelIndex = GetXY(imageXY[i]);
//int pixelIndex = Integer.parseInt(imageXY[i].split(",")[2]);
colorMatrix[pixelIndex] = pixelValue;
}
c.drawBitmap(colorMatrix, 0, width, 0, 0, width, height, false, paint);
myImage.setImageBitmap(mBitmap);
然而,每帧约需500毫秒
答案 0 :(得分:1)
这是在Android中启动OpenGL最简单的地方:http://developer.android.com/guide/topics/graphics/opengl.html
我还会考虑在这个过程中使用多个核心;虽然基于GPU的计算可以提供更高的单核速度,但是通过利用多核和并行处理将大大加速诸如此类的相当“简单”的任务,并且不应该太难实现。以下是Android设备上并行处理的介绍。
https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-1-2