Android:解决TextView排版混乱问题

简介: Android:解决TextView排版混乱问题

解决TextView排版混乱问题


1.问题描述


textview排版混乱有可能有多种情况,但最常见的问题有两种:


第一、半角字符与全角字符混乱所致;这种情况一般就是汉字与数字、英文字母混用。


第二、一些特殊字符的影响。


2.解决方式


主要方法,直接上代码吧,请君看:

/**
   * @Description 解决textview的问题---半角字符与全角字符混乱所致;这种情况一般就是汉字与数字、英文字母混用  
   * @param input String类型
   * @return String 返回的String为半角(英文)类型
   */
  public static String ToDBC(String input) {  
       char[] c = input.toCharArray();  
       for (int i = 0; i< c.length; i++) {  
           if (c[i] == 12288) {  
             c[i] = (char) 32;  
             continue;  
           }if (c[i]> 65280&& c[i]< 65375)  
              c[i] = (char) (c[i] - 65248);  
           }  
       return new String(c);  
    }  

如果上面的方法不行就试试下面这个方法,都能解决问题。

 /**
     * @param input String类型
     * @return String  返回的String为全角(中文)类型
     * @Description  解决textview的问题---半角字符与全角字符混乱所致;这种情况一般就是汉字与数字、英文字母混用
     */
    public static String toSBC(String input) { //半角转全角:
        char[] c = input.toCharArray();
        for (int i = 0; i < c.length; i++) {
            if (c[i] == 32) {
                c[i] = (char) 12288;
                continue;
            }
            if (c[i] < 127) c[i] = (char) (c[i] + 65248);
        }
        return new String(c);
    }

无论使用上面哪种方法转换字符,下面的方法都是必须与其配合一起使用的。

 

/**
   * @Description 替换、过滤特殊字符  
   * @param str String类型
   * @return String
   */
  public static String StringFilter(String str) throws PatternSyntaxException{  
      str=str.replaceAll(" ","").replaceAll(" ","").replaceAll(":",":").replaceAll(":",":").replaceAll("【","[").replaceAll("】","]").replaceAll("!","!");//替换中文标号  
      String regEx="[『』]"; // 清除掉特殊字符  
      Pattern p = Pattern.compile(regEx);  
      Matcher m = p.matcher(str);  
      return m.replaceAll("").trim();  
  }  

3.示例

 

部分主要代码:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);
    TextView tv_activity_info=findViewById(R.id.tv_activity_info);
    String activityInfo="测试文字排版混乱:示例-->#看看ADBhgnadc;美啦美啦美啦……beautifull girl!!!试试吧!可以多写些不同的文字测试下,此处我只给出已解决的示例了,大家可自行写代码对比下,效果立显!";
    activityInfo=StringFilter(ToDBC(activityInfo));
    tv_activity_info.setText(Html.fromHtml(activityInfo));
}
/**
   * @Description 解决textview的问题---半角字符与全角字符混乱所致;这种情况一般就是汉字与数字、英文字母混用  
   * @param input String类型
   * @return String
   */
  public static String ToDBC(String input) {  
       char[] c = input.toCharArray();  
       for (int i = 0; i< c.length; i++) {  
           if (c[i] == 12288) {  
             c[i] = (char) 32;  
             continue;  
           }if (c[i]> 65280&& c[i]< 65375)  
              c[i] = (char) (c[i] - 65248);  
           }  
       return new String(c);  
    }  
  /**
   * @Description 替换、过滤特殊字符  
   * @param str String类型
   * @return String
   */
  public static String StringFilter(String str) throws PatternSyntaxException{  
      str=str.replaceAll(" ","").replaceAll(" ","").replaceAll(":",":").replaceAll(":",":").replaceAll("【","[").replaceAll("】","]").replaceAll("!","!");//替换中文标号  
      String regEx="[『』]"; // 清除掉特殊字符  
      Pattern p = Pattern.compile(regEx);  
      Matcher m = p.matcher(str);  
      return m.replaceAll("").trim();  
  }  


目录
相关文章
|
26天前
|
XML 存储 Java
浅谈Android的TextView控件
浅谈Android的TextView控件
21 0
|
2月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
198 3
|
5月前
|
XML IDE 开发工具
13. 【Android教程】文本框 TextView
13. 【Android教程】文本框 TextView
98 2
|
5月前
|
编解码 Android开发
Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题
Android 解决TextView多行滑动与NestedScrollView嵌套滑动冲突的问题
74 0
|
6月前
|
Android开发
android TextView HTML 的效果
android TextView HTML 的效果
37 2
|
6月前
|
XML 搜索推荐 Java
Android TextView的字体设置
【5月更文挑战第13天】
220 0
|
6月前
|
XML Java Android开发
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
Android控件之基础控件——进度条类的view——TextView、Checkbox复选控件、RadioButton单选控件、ToggleButton开关、SeekBar拖动条、menu、弹窗
647 1
|
6月前
|
Android开发
Android开发小技巧:怎样在 textview 前面加上一个小图标。
Android开发小技巧:怎样在 textview 前面加上一个小图标。
108 0
|
Java Android开发 iOS开发
Android TextView 与 EditText 的区别与使用
Android TextView 与 EditText 的区别与使用
155 0
|
XML Android开发 数据格式
Android 中使用SpannableString实现TextView文本超链接跳转功能
Android 中使用SpannableString实现TextView文本超链接跳转功能
225 0