我正在创建一个Android应用程序,并正在使用canvas位图(特别是Samsung SPen SDK)。我目前有我想要的功能,但实现加载的方式会使运行时间过长。
我有什么:
保存:我将画布保存为位图,并将此位图拆分为特定大小的X个较小位图(仅保存带有写入的部分)。本节的效率没有问题。
正在加载::
canvas.drawBitmap(imgs[x][y], xCoordinate, yCoordinate, null)
对所有已写入其中的图像(imgs[][]
=位图数组)重新构建原始位图。setclearImageBitmap(BitmapName)
函数在画布的前景中显示它。除了将一个大图像加载到前景中占用约90%的运行时间之外,这种方法工作正常。 private void loadCanvasImage(){ 位图bmOverlay = Bitmap.createBitmap(mSCanvas.getWidth(),mSCanvas.getHeight(),Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bmOverlay); int yCo = 0; for(int yCount = 0; yCount }
问题: 我想知道是否有更有效的方法来做到这一点。可能通过实施这个想法:
我未能实现的另一个方法是将SCanvasView设置为包含我重新创建的一个大位图的画布。我通过尝试覆盖onDraw(Canvas)方法并传递canvas.drawBitmap(imgs[x][y], xCoordinate, yCoordinate, null)