您的位置:首页 > 移动开发 > Android开发

添加地图注记出现的问题

2016-01-14 22:26 369 查看
◆ 1、问题产生:

最近学习地图二次开发的基础,在添加注记时出现错误,但是用法也没有错,不知道是什么原因,经过一上午的摸索终于解决了,与大家分享,希望能帮助有需要的人。

Graphic gPnt = buildGraphic(pnt,new SimpleMarkerSymbol(color,width,STYLE.CIRCLE),attr);
TextSymbol tSymbol =  new TextSymbol(16,strPointNum+":"+str, Color.GREEN);
Graphic gTxt = buildGraphic(pnt,tSymbol,attr);


上面一段代码是想将str中的中文文本添加到地图上,在android 5.0以下的版本进行真机调试正常,但是在android 5.0以上则报错。

◆ 2、具体原因:

为什么会出现上述的问题呢?通过查阅资料我在网上看到以下这样一段话。

Android系统中一般中英文字体包,主要是DroidSansFallback.ttf(中文字体)、DroidSans.ttf(英文字体)、 DroidSans-Bold.ttf(英文加粗字体)这三种,因为这三种字体是Andorid系统中几乎每一个显示界面都要使用到的字体,是默认的系统字体,所以只要你是Android手机,一般系统就内置有这三款字体。

但对于定制的Android系统有没有这个字体,这个字体是不是默认的就真的不好说了。如我使用的定制的5.0系统就没有这个字体,运行出现问题,但在4.4版本上运行正常。

◆ 3、解决问题:

1)、Android 5.0以下版本,检查手机字体库内是否包含DroidSansFallback.ttf字体,若包含则在使用TextSymbol时设置使用的字体。(设置其他字体也是可以的,但是该字体要支持中文)

2)、Android 5.0以上版本,由于默认的otf格式字体不被识别,所以先将DroidSansFallback.ttf字体文件拷贝到手机系统字体文件夹下,然后设置使用。(对于用到的手机每个都Root并设置也不是很现实)

3)、对于网上提到的加载自定义本地字体解决方案,关键代码如下所示,其中字体类是Typeface,我并没有在TextSymbol中找到对应的设置接口,所以这条路暂时也没有走通。

◆4、参考资料:

http://www.68idc.cn/help/buildlang/ask/20150102153583.html

http://www.zhihu.com/question/26202765

http://jingyan.baidu.com/article/8275fc86b80c6d46a03cf6f9.html

http://my.oschina.net/ryanhoo/blog/260945?p=1

http://www.cnblogs.com/gis-luq/p/4833361.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android