TextView中的小方格

来源:互联网 发布:闪迪数据恢复软件mac 编辑:程序博客网 时间:2024/04/30 01:31

最近要写一个小程序,要在TextView里面显示中文,可是出现好多小方格,出现这种情况的原因是TextView并不支持这些字符。

这有可以分成两种情况,一是字库里不包含的字,通常是一些特别冷僻的字。这种对我们写程序来说是无能为力的,只能靠用户自己去更新系统的字库。第二种情况是有一些特殊的字符,比如'/r'(回车),TextView不能识别。所以解决办法就是把它过滤掉。

这里提供两种方法:

一种很容易想到,就是一个一个字符去比较,等于'/r'就delete掉。

还有一种方法是用TextView 的setTransformationMethod(TransformationMethod method)把所有字库不支持的char都过滤掉。

TransformationMethod只是一个接口,如果要实现替换操作,最方便的做法是继承抽象类ReplacementTransformationMethod,ReplacementTransformationMethod实现了TransformationMethod的方法,并提供了两个抽象函数。getOriginal()返回的是需要被替换的char[],getReplacement()返回的是替换后的char[]。

这里我用空格替换回车,3替换2,注意它们是一一对应的。

然后只要在开始的地方调用一次textView.setTransformationMethod(new MyTransformationMethod())就可以了。

显然,后面一种方法更好一些。

原创粉丝点击