1

我正在使用 forEach_root 方法在 Android 上计算图像。

RenderScript RS=RenderScript.create(context);

Allocation inPixelsAllocation = Allocation.createFromBitmap(RS, inBitmap,
            Allocation.MipmapControl.MIPMAP_NONE,Allocation.USAGE_SCRIPT); 
Bitmap out=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
Allocation outPixelsAllocation = Allocation.createFromBitmap(RS, out,
Allocation.MipmapControl.MIPMAP_NONE,Allocation.USAGE_SCRIPT);

mScript.forEach_root(inPixelsAllocation,outPixelsAllocation);
outPixelsAllocation.copyTo(out);
return out;

这很好用,但是,由于可能存在大量数据(需要处理超过 1800 万像素),因此可能需要一些时间。是否有可能获得 RenderScript forEach-loop 的当前进程?

4

1 回答 1

1

我假设“当前进程”是指状态(以便您可以显示进度条或类似的东西)。没有办法知道已经完成了多少工作,也没有多少开发人员可见的剩余工作。事实上,我认为我们实际上无法真正计算出这一点,因为您可以通过一个简单的 if 语句来查找该像素坐标,从而使内核实例的任何单个单元格花费更长的时间。所以,我有两个潜在的建议给你,这取决于你认为状态信息会给你带来什么:1)如果你想制作一个进度条并想让用户知道你确实是,请使用微调器还在工作; 2)如果你需要这个来同步,你以后对输入/输出分配所做的任何事情都会等到内核完成(即

于 2012-12-04T17:13:31.290 回答