绘制带路径和缩放功能的地图

时间:2013-03-26 17:15:11

标签: android canvas path

我正在绘制带有预定义路径的地图。地图可以移动,可以放大和缩小。 在放大我的Android 4.0.4时,这非常有效,快速,流畅,看起来很棒。

因为我得到4.1.2的更新,所以一切都不同: 当放大形状时,现在将获得像素(如附图中的非锐化)和 移动地图非常抽搐。我没有改变代码。

在模拟器(AVG)中,它在缩放时看起来也很不错(见下面的截图)

我的工作是: - 我在大约x = 0-2000和y = 0-1500的区域内有很多Pathes - 我只绘制了屏幕之间可见的pathes - 在我的自定义视图的onDraw()方法中使用canvas.scale(x,x)进行缩放 - 移动地图是由我自定义视图的onDraw()方法中的canvas.translate(x,y)完成的。

我尝试了什么:

  • 我试图通过使用canvas.scale() - >的缩放来转换所有的pathes这样可行,但我的形状变大,所以无法绘制:“形状路径太大而无法渲染到纹理中”

  • 使用大坐标重新创建pathes。同样的问题,它非常慢 - > “形状路径太大而无法渲染到纹理中”

  • 将形状分成几个形状不是解决方案,因为它之前已经在我的4.0.4上工作了,我也想正确地绘制边框。 (例如海岸线)

enter image description here

模拟器

enter image description here

1 个答案:

答案 0 :(得分:0)

我发现了问题: 随着我的新JellyBean更新硬件加速被默认为打开和Hardwareacceleration接缝是错误的。我不得不明确地假设AndroidManifest.xml中的“硬件加速”:

    <application
   android:hardwareAccelerated="false"
    android:icon="@drawable/ic_launcher"

问候