`
marine8888
  • 浏览: 544448 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

删除TextView中无法正常显示的小方格(转载)

阅读更多

  TextView中的小方格

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

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

这里提供两种方法:

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

view plaincopy to clipboardprint?
String str;  
StringBuffer buf = new StringBuffer(str);  
for(int i=0;i<buf.length();i++)  
    if(buf.charAt(i) == '\r')  
        buf = buf.deleteCharAt(i);  
str = buf.toString(); 
String str;
StringBuffer buf = new StringBuffer(str);
for(int i=0;i<buf.length();i++)
    if(buf.charAt(i) == '\r')
        buf = buf.deleteCharAt(i);
str = buf.toString();

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

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

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

view plaincopy to clipboardprint?
private class MyTransformationMethod extends ReplacementTransformationMethod{  
        @Override 
        protected char[] getOriginal() {  
            char[] original={'\r','2'};  
            return original;  
        }  
        @Override 
        protected char[] getReplacement() {         
            char[] replacement={' ','3'};  
            return replacement;  
        }  
         
    } 
private class MyTransformationMethod extends ReplacementTransformationMethod{
        @Override
        protected char[] getOriginal() {
            char[] original={'\r','2'};
            return original;
        }
        @Override
        protected char[] getReplacement() {      
            char[] replacement={' ','3'};
            return replacement;
        }
      
    }

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

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


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Seaside_Boy/archive/2010/01/20/5218536.aspx

分享到:
评论

相关推荐

    Android的TextView中显示图片和图像的方法

    在Android开发中,TextView是用于显示文本的基本组件。然而,除了文字之外,有时我们还需要在TextView中嵌入图片或图像,以实现更丰富的用户界面。本文将详细介绍如何在Android的TextView中显示图片和图像。 首先,...

    解决Android原生TextView显示中英文等末尾参差不齐问题

    在Android开发中,TextView是用于显示文本的基本组件,它在用户界面中扮演着重要的角色。然而,当TextView显示中英文混合或包含特殊字符时,可能会出现末尾对齐不一致的问题,这会严重影响UI的美观性和用户体验。...

    android设置TextView中不同的文字字体大小且垂直居中显示

    在Android开发中,有时我们需要在同一个TextView中展示不同大小的文字,并让它们保持垂直居中对齐。这可以通过使用SpannableString来实现。SpannableString是Android SDK提供的一种可操作字符串对象,允许我们在字符...

    Android 一个TextView中设置不同字体大小和颜色

    在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在用户界面设计中扮演着重要角色。当我们需要在一个TextView中展示不同字体大小和颜色的文本时,可以借助SpannableString和相关Span类来实现。下面...

    TextView解决中英文换行bug和点击显示全部功能

    在Android开发中,TextView是用于显示文本的基本组件,它的功能强大且灵活。当我们处理中英文混合的文本时,可能会遇到一些棘手的问题,比如中英文混合导致的提前换行问题。这个问题通常出现在当一个英文单词与一个...

    android 逐行显示自动换行的textview

    在Android开发中,文本视图(TextView)是用于展示文本的基本组件。然而,有时我们可能需要实现更复杂的显示效果,比如在应用中播放通知字幕时,逐行逐字显示文本,这通常用于模仿电视字幕或者游戏中的对话效果。在...

    android TextView显示图片

    在Android开发中,TextView是用于显示文本的基本组件,但其实它并不局限于纯文本,还能通过一些方式来显示图片。这个Demo就是关于如何在TextView中嵌入并显示图片的一个实例。以下我们将详细探讨如何利用TextView的...

    android TextView 显示Gif 图片

    在Android开发中,`TextView`通常用于显示文本内容,但有时候我们可能希望在其中嵌入动态图像,如GIF格式的图片。`TextView`默认并不支持直接显示GIF动画,因此需要通过一些特殊的方式来实现这一功能。本篇将详细...

    旋转TextView文字显示方向

    在Android开发中,TextView是用于显示文本的基本组件。然而,有时候我们可能需要让TextView中的文字以特定的角度旋转显示,比如垂直显示或者倾斜显示,来满足界面设计的需求。这就是"旋转TextView文字显示方向"这一...

    自定义TextView解决超长文字显示

    然而,当文本内容过长时,默认的TextView可能无法妥善处理,导致显示不全或者用户体验不佳。为了解决这个问题,开发者通常需要进行自定义扩展,以实现更灵活的文本显示功能。本篇文章将深入探讨如何自定义TextView来...

    自定义TextVIew显示GIF图片

    在Android开发中,有时我们需要在TextView中展示动态的GIF图像,而系统默认的TextView并不支持直接播放GIF。为了实现这一功能,我们需要自定义一个TextView,并通过一系列技术手段来处理GIF文件。以下是如何在自定义...

    HtmlTextView,在android 3.0或更高版本的textview中显示html代码(特别是处理在互联网上显示图像/图片)。.zip

    在Android原生的TextView中,仅支持有限的HTML标签,如`&lt;b&gt;`(粗体)、`&lt;i&gt;`(斜体)和`&lt;u&gt;`(下划线),但无法直接处理复杂的HTML内容,如图像、链接或自定义样式。这就导致了开发者在需要展示富文本内容时面临困难...

    解决 TextView 中文、英文、数字、符号 排版问题

    在Android开发中,TextView是用于显示文本的基本组件,它在用户界面中扮演着重要的角色。然而,当TextView中包含中文、英文、数字和符号时,可能会出现排版问题,如字符间距离不均、换行混乱等。为了解决这些问题,...

    TextView的字体自适应控件的大小

    在Android开发中,`TextView` 是一个非常基础且重要的组件,用于显示文本信息。当我们需要在`TextView`中展示大量文字,并希望它能自动适应屏幕大小和内容长度时,就需要用到字体自适应的技术。标题“TextView的字体...

    android 设置textview中划线效果

    TextView是Android中最常用的用于显示文本的控件之一。而Paint对象则是用来控制文本绘制方式的对象,包括颜色、字体大小、样式等等。 1. **TextView**: TextView用于显示文本信息,可以通过多种属性来自定义其外观...

    android Textview 实现html 图片显示

    在Android开发中,TextView是用于显示纯文本的常见组件,但在某些场景下,我们可能需要在TextView中展示富文本,包括HTML格式的内容。这通常涉及到图片的显示和点击交互。以下将详细介绍如何在Android的TextView中...

    Android TextView显示html的demo

    在XML布局文件中定义,或者在代码中创建,TextView可以用来显示静态文本,也可以动态加载数据。 2. **显示HTML内容**: - Android的TextView默认并不支持HTML解析,但通过`Html.fromHtml()`方法,我们可以将HTML...

    Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)

    视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号…后(textview省略号显示,图标自动靠后)。 二、问题解决 TextView可以通过 android:ellipsize=end android:singleLine=true实现单行省略, 但是...

    TextView富文本显示

    在Android开发中,`TextView`是用于展示文本的最基础且重要的组件。通常情况下,`TextView`能够简单地展示纯文本,但在某些场景下,我们可能需要更复杂的文本格式,如加粗、斜体、超链接、颜色变化等,这时就需要...

    安卓textView相关-TextView中文本的处理.rar

    在Android开发中,TextView是显示文本的基本控件,它的使用非常广泛,无论是显示简单的文字信息,还是复杂的格式化文本,TextView都是不可或缺的一部分。这个压缩包文件"安卓textView相关-TextView中文本的处理.rar...

Global site tag (gtag.js) - Google Analytics