Android 使用路径和缩放功能绘制地图

Android 使用路径和缩放功能绘制地图,android,canvas,path,Android,Canvas,Path,我正在用预定义的路径绘制地图。地图可以移动,也可以放大和缩小。 在我的安卓4.0.4上放大时,效果非常好,快速流畅 因为我更新了4.1.2,所以一切都不同了: 放大时,形状现在将被像素化(如所附图片中所示,取消锐化),并且 移动地图是非常令人不安的。我没有改变密码 令人惊讶的是,在emulator(AVG)中,它在缩放时看起来也不错(见下面的屏幕截图) 我所做的是: -在x=0-2000和y=0-1500的区域内有很多路径 -我只画在屏幕大小之间可见的路径 -在自定义视图的onDraw()方法中

我正在用预定义的路径绘制地图。地图可以移动,也可以放大和缩小。 在我的安卓4.0.4上放大时,效果非常好,快速流畅

因为我更新了4.1.2,所以一切都不同了: 放大时,形状现在将被像素化(如所附图片中所示,取消锐化),并且 移动地图是非常令人不安的。我没有改变密码

令人惊讶的是,在emulator(AVG)中,它在缩放时看起来也不错(见下面的屏幕截图)

我所做的是: -在x=0-2000和y=0-1500的区域内有很多路径 -我只画在屏幕大小之间可见的路径 -在自定义视图的onDraw()方法中使用canvas.scale(x,x)进行缩放 -通过自定义视图的onDraw()方法中的canvas.translate(x,y)来移动地图

我尝试的是:

  • 我尝试通过缩放来转换所有路径,而不是使用canvas.scale()->这会起作用,但我的形状太大,因此无法绘制:“形状路径太大,无法渲染为纹理”

  • 用大坐标重新创建路径。同样的问题及其非常缓慢->“形状路径太大,无法渲染为纹理”

  • 将形状分成几个形状并不是解决方案,因为它在我的4.0.4上已经起作用了,而且我也喜欢正确地绘制边界。(例如海岸线)

仿真器

我发现了问题: 在我的新JellyBean更新中,硬件加速默认为on,而硬件加速则是有缺陷的。我必须在AndroidManifest.xml中明确指出“硬件加速”:

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