【发布时间】:2017-01-10 15:51:48
【问题描述】:
我正在研究将原始 YUV 图像 (1280 x 720) 的亮度值显示为图形的要求。也就是说,我将 Y 数据分离并以图形的形式显示,其中 x 轴是宽度,y 轴是各自的 Y 值。
// 代码
int count = 0;
int byteValue = 0;
for ( y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
byteValue = pPictureIn[count++] & 0xff;
series.addLast(x, byteValue);
}
}
final PlotStatistics stats = new PlotStatistics(10, false);
plot.addListener(stats);
redrawer = new Redrawer(Arrays.asList(new Plot[]{plot}),
1, false);
format = new LineAndPointFormatter(this, R.xml.formatter);
plot.addSeries(series, format);
redrawer.start();
我正在使用 AndroidPlot 来绘制图形。我正在将所有要点添加到该系列中。我的问题是,如果我尝试渲染点,我的应用程序会被冻结。我将渲染模式用作 USE_BACKGROUND_THREAD。
请有人帮我一次性渲染这些点而不会冻结。提前致谢
【问题讨论】:
-
您在哪个线程上遍历图像中的每个像素?
-
我正在处理异步任务中的像素,并开始在 post execute 方法上进行渲染。 @Morrison Chang
-
如果我给的分数更少,它的渲染就正确了。否则应用程序会冻结。 @Morrison Chang
-
如果您正在检查 Java 中的每个像素(并等待它) - 试试 RenderScript - stackoverflow.com/documentation/android/5214/renderscript/18462/…
-
那么,我可以使用这个 renderScript 来渲染图形吗?因为遍历所有像素并没有引起任何问题@Morrison Chang
标签: android graph rendering yuv androidplot