将图像加载到SCanvasView中的特定坐标

时间:2013-05-03 15:46:07

标签: android canvas bitmap

我正在创建一个Android应用程序,并正在使用canvas位图(特别是Samsung SPen SDK)。我目前有我想要的功能,但实现加载的方式会使运行时间过长。

我有什么:

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

正在加载:

  1. 然后,我使用X个较小的位图并将它们组合起来,使用canvas.drawBitmap(imgs[x][y], xCoordinate, yCoordinate, null)对所有已写入其中的图像(imgs[][] =位图数组)重新构建原始位图。
  2. 然后我使用SCanvasView类中的setclearImageBitmap(BitmapName)函数在画布的前景中显示它。除了将一个大图像加载到前景中占用约90%的运行时间之外,这种方法工作正常。
  3. 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 }

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

    通过在特定的x,y坐标处向画布视图(最好是前景)添加多个位图(这可能会使它更快,因为不需要显示较小的位图而不必显示它们。)

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

    的画布结果来做到这一点

0 个答案:

没有答案