你的位置:首页 > 软件开发 > 操作系统 > android textview 自动换行 整齐排版

android textview 自动换行 整齐排版

发布时间:2016-02-24 17:01:34
一、问题在哪里?textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子:上述特殊情况包括:1)全角/半角符号混排(一般是数字、字母、汉字混排)2)全角/半角标点符号出现在行首时,该标点符号会连同其前一个字符跳到下一行3)英文单词不能被折成两行4 ...

android textview 自动换行 整齐排版

一、问题在哪里?

textview显示长文字时会进行自动折行,如果遇到一些特殊情况,自动折行会杯具成这个样子:

android textview 自动换行 整齐排版

上述特殊情况包括:

1)全角/半角符号混排(一般是数字、字母、汉字混排)

2)全角/半角标点符号出现在行首时,该标点符号会连同其前一个字符跳到下一行

3)英文单词不能被折成两行

4)......

  [转载请保留本文地址:http://www.cnblogs.com/goagent/p/5159125.html]

二、怎么搞?

通常有两类解决方案:

1)修改文本内容,将所有符号全角化、在标点符号前面加空格等等……

2)保持文本内容不变,在合适的位置将文本手动分成多行

本文采用第二种方案,更加通用,也最大限度的保留了原文本。

  [转载请保留本文地址:http://www.cnblogs.com/goagent/p/5159125.html]

三、开始干活

3.1  “在合适的位置将文本手动分成多行”需要知道textview的实际宽度、字体大小等信息,框架如下:

 1 public class TestCActivity extends Activity { 2   private TextView mText; 3    4   @Override 5   protected void onCreate(Bundle savedInstanceState) { 6     super.onCreate(savedInstanceState); 7      8     setContentView(R.layout.testc); 9     10     mText = (TextView)findViewById(R.id.txt);11     mText.setText("本文地址http://www.cnblogs.com/goagent/p/5159125.html本文地址啊本文。地址。啊http://www.cnblogs.com/goagent/p/5159125.html");12     mText.getViewTreeObserver().addOnGlobalLayoutListener(new OnTvGlobalLayoutListener());13   }14 15   private class OnTvGlobalLayoutListener implements OnGlobalLayoutListener {16     @Override17     public void onGlobalLayout() {18       mText.getViewTreeObserver().removeOnGlobalLayoutListener(this);19       final String newText = autoSplitText(mText);20       if (!TextUtils.isEmpty(newText)) {21         mText.setText(newText);22       }23     }24   }25   26   private String autoSplitText(final TextView tv) {27     final String rawText = tv.getText().toString();28     final Paint tvPaint = tv.getPaint();29     final int tvWidth = tv.getWidth() - tv.getPaddingLeft() - tv.getPaddingRight();30     31     //autoSplitText begin....32     String newText = rawText;33     //autoSplitText end....34     35     return newText;36   }37 }

原标题:android textview 自动换行 整齐排版

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录