Canvas.drawbitmap不起作用

时间:2013-08-23 05:36:12

标签: android

我必须在地图上画一条线。由于需要特殊的线条效果,我必须使用临时画布创建一个单独的位图并在该位图上绘制线条。现在当它完成绘制线时,我将它渲染到主画布。不幸的是,下面的代码对我不起作用。

  @Override
    protected void draw(final Canvas canvas, final MapView mapView, final boolean shadow) {
    Bitmap pathBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Config.ARGB_4444);
    Canvas tempCanvas = new Canvas(pathBitmap);
    tempCanvas.drawPath(mPath, this.mPaint);
    canvas.drawBitmap(pathBitmap, 0, 0, null);
    }

有谁能告诉我这里我做错了什么?

更新:看看我做错了什么。我创建了一个新类并使用Drawable扩展它。在该类中,我重写了Draw方法,并且仅使用参数Canvas使用相同的代码,并且它有效。但不知道为什么它不能在MapView上运行。有人请帮帮我吗?

2 个答案:

答案 0 :(得分:1)

在创建位图时,您应该使用视图的getWidget()getHeight(),而不是占用画布的大小。

答案 1 :(得分:0)

我在类似的问题上挣扎。最后,我查看了控制台窗口,发现了这个警告:

“OpenGLRenderer:位图太大而无法上传到纹理中”。这可能是你的问题吗?见"Bitmap too large to be uploaded into a texture"