[置顶] Arcgis for Android 中文乱码只因没有再尝试一步
2017-06-11 21:56
169 查看
现象
使用Arcgis for Android SDK 开发地图应用时,难免会显示中文,但是当我们把中文显示在地图时,部分手机显示正常,部分手机直接就什么都没有显示,还有一部分显示乱码。原因
导致乱码的原因部分博客分析一此手机不支持中文字体,当然这没有错,如果 Android 不支持中文字体那系统的中文怎么显示出来的。Arcgis使用了 OpenGL 进行绘图,在使用
TextSymbol进行显示文字提供了设置字体的方法,但设置了系统已经有的中文字体就可以显示出来了,那么说明和字体是相关的。
解决办法
方法 1
使用图片代替文字显示此方法请查看http://blog.csdn.net/u013758734/article/details/41702025
当显示过多内容势必占用内存,所以不太推荐使用此办法。好在我发现第二种办法,不然或许只能用这个办法了。
方法 2 ( 推荐 )
从原因出发因为 Arcgis 在画
TextSymbol时没有中文字体,或使用的默认字体不支持中文,所以才导致了这样的问题,我们不能期望Arcgis做些什么,也不能让Android系统在每个终端中加入指定字体。只能自己带个中文字体了。
其它博客写到在使用TextSymbol时使用setFontFamily()设置以下两种字体,因为这两个是支持中文显示的。
String fontFamily = "DroidSansFallback.ttf"; if(Build.VERSION.SDK_INT >= 21){ fontFamily = "NotoSansHans-Regular.otf"; }
正因为不能保证所有系统都有下面的字体,那么这个问题还是不能得到解决。
废话不多说放大招:
下载DroidSansFallback.ttf"字体【单击下载】
复制下载字体至内存卡
使用下面的子类进行字体显示(注意字体在内存卡的路径)
import com.esri.core.symbol.TextSymbol; import org.codehaus.jackson.JsonNode; import java.io.File; /** * Created by canney on 2017/6/11. */ public class MyTextSymbol extends TextSymbol { private static final long serialVersionUID = 357217592429086811L; public MyTextSymbol(int size, String text, int color, HorizontalAlignment halign, VerticalAlignment valign) { super(size, text, color, halign, valign); fixedNotSupportChineseBug(); } public MyTextSymbol(int size, String text, int color) { super(size, text, color); fixedNotSupportChineseBug(); } public MyTextSymbol(JsonNode node) { super(node); fixedNotSupportChineseBug(); } public MyTextSymbol(String fontFamily, String text, int color) { super(fontFamily, text, color); fixedNotSupportChineseBug(); } public MyTextSymbol(TextSymbol textSymbol) { super(textSymbol); fixedNotSupportChineseBug(); } /** * 解决中文乱码问题 */ private void fixedNotSupportChineseBug() { //字体在内存卡的路径 String fontFamilyPath = "DroidSansFallback.ttf"; String fontFamily = new File(Environment.getExternalStorageDirectory(), fontFamilyPath).getPath(); setFontFamily(fontFamily); } }
参考:
http://www.cnblogs.com/gis-luq/p/4833361.html
相关文章推荐
- [置顶] url中传中文参数乱码问题
- php get传值 中文参数 乱码问题的尝试解决
- [置顶] tomcat控制台日志打印中文乱码问题解决
- [置顶] javaWeb项目中文乱码容易忽略的点
- [置顶] 【Linux利用远程SSH连接】SecureCRT中文出现乱码解决办法 Linux服务器技术
- [置顶] Android http get请求里中文是乱码的解决(其中一种情况)
- [置顶] PHP解决浏览器 下载文件 中文名称乱码问题--兼容大多浏览器
- [置顶] tomcat控制台日志打印中文乱码问题解决
- [置顶] tomcat控制台日志打印中文乱码问题解决
- Cocostudio工具创建工程,因没有字体资源导致在vs中编译时,出现中文乱码现象
- JS中调用输出中文乱码怎么办?一步轻松解决
- [置顶] tomcat控制台日志打印中文乱码问题解决
- [置顶] tomcat控制台日志打印中文乱码问题解决
- 网页中输出中文出错没有输出或乱码解决
- [置顶] tomcat控制台日志打印中文乱码问题解决
- [置顶] tomcat控制台日志打印中文乱码问题解决
- 关于安装oracle11g时没有安装gbk简体中文出现的EM按钮是乱码问题
- 从4.8.5版本升级到FastReport 4.10.1后,中文菜单有乱码,有的没有显示
- gedit 没有preference项,使preference回归,并用命令行设置行号,解决centos7下中文乱码,text wrapping等问题
- [置顶] tomcat控制台日志打印中文乱码问题解决