2

我正在创建一个 android 应用程序并使用画布位图(特别是三星 SPen SDK)。我目前有我想要工作的功能,但是加载的实现方式使运行时间太长。

我有的:

保存:我将画布保存为位图,并将此位图拆分为 X 个特定大小的较小位图(仅保存其中写入的部分)。这部分的效率没有问题。

加载::

  1. 然后,我取 X 个较小的位图并将它们组合起来,以重构原始位图,canvas.drawBitmap(imgs[x][y], xCoordinate, yCoordinate, null)用于所有在其中写入的图像(imgs[][]= 位图数组)。
  2. setclearImageBitmap(BitmapName)然后,我使用SCanvasView 类中的函数将其显示在画布的前景中。除了将一张大图像加载到前台占用约 90% 的运行时间这一事实之外,这还可以正常工作。

私有 void loadCanvasImage(){ 位图 bmOverlay = Bitmap.createBitmap(mSCanvas.getWidth(), mSCanvas.getHeight(), Bitmap.Config.ARGB_8888); 画布画布 = 新画布(bmOverlay);int yCo = 0; for(int yCount=0; yCount }

问题:我想知道是否有更有效的方法来做到这一点。可能通过实现这个想法:

通过在特定 x,y 坐标处将多个位图添加到画布视图(最好是前景)(这可能会使其更快,因为不必显示没有在其上写入的较小位图)。

我未能实现的另一种方法是将 SCanvasView 设置为包含我重新创建的一个大位图的画布。我通过尝试覆盖 onDraw(Canvas) 方法并传递画布结果来做到这一点canvas.drawBitmap(imgs[x][y], xCoordinate, yCoordinate, null)

4

0 回答 0