Android 百度地图 Overlay不会自动刷新的问题

2014-10-22 17:26:05     44 人阅读    

这一段时间在做一个关于百度地图的Android项目,自己写了一个自定义Overlay,画图的时候不会自动刷新,非要点一下屏幕才行。后来搜到的原因是百度地图引擎对GPU加速支持不好,在Android4.0及以上版本程序默认是开启硬件加速的。所以关闭硬件加速就可以。关闭有几种方法:
  
Application
Activity
Window
View
Application 层 在你的Android manifest文件里,添加以下属性到<application>标签里,针对整个应用开启硬件加速:
<application android:hardwareAccelerated="true" ...>
 
Activity 层 如果整个应用开启硬件加速表现的不稳定,你也可以针对单个Activity进行控制。在Activity层开启或者关闭硬件加速,你可以使用android:hardwareAccelerated属性在<activity>标签内。下面是单个Activity中关闭硬件加速的例子:
 
<application android:hardwareAccelerated="true">
    <activity ... />
    <activity android:hardwareAccelerated="false" />
</application>


Window 层 如果你需要更细致的控制,可以在获得的Window里开启硬件加速:
 

getWindow().setFlags(
 
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
 
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);


 
注: 在window层不能取消硬件加速。
 
View 层 通过下面代码,你可以在运行时关闭硬件加速:
 

myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);



 
注:你不能在view层开启硬件加速。 View面板有其他方法关闭硬件加速。更多详细内容请看View面板


原文地址:http://www.itmmd.com/201410/57.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

Android 开发问题!No Launcher activity found!错误   上一篇
下一篇  Android NDK项目的建立与调试 之 OpenCV开发

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!