牛骨文教育服务平台(让学习变的简单)
博文笔记

android字符串过长时用省略号来处理

创建时间:2017-03-15 投稿人: 浏览次数:1047

TextView中有个ellipsize属性,作用是当文字过长时,该控件该如何显示,解释如下:

android:ellipsize="start"        省略号在开头        
android:ellipsize="middle"       省略号在中间        
android:ellipsize="end"          省略号在结尾        
android:ellipsize="marquee"      省略号跑马灯显示

或者在程序中可通过setEillpsize显式设置
注: EditText不支持marquee属性

使用示例

<TextView
  android:id="@+id/calendar_schedule"
  android:layout_width="200dp"
  android:layout_height="wrap_content"
  android:layout_centerInParent="true"
  android:ellipsize="end"
  android:gravity="center"
  android:maxLines="1"
  android:textSize="13sp"
  tool:text="开重要会议"/>

效果预览

这里写图片描述

附送一个计算中英文混输字符串长度的方法,使用中文占两位,其他字符占1位的方法来计算,原本没发现textview自带过长省略功能的时候打算自己手撸的……..

private int calStrLen(String str) {
        int m = 0;
        char arr[] = str.toCharArray();
        for (char c : arr) {
            if (String.valueOf(c).matches("[u4e00-u9fa5]"))  //中文字符
            {
                m = m + 2;
            } else {
                m = m + 1;
            }
        }
        return m;
    }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。