字符串截取符合TextView自定义样式

原创 2016年05月31日 09:56:11

最近在做项目时ListView的Item的样式,如下图:
这里写图片描述

主要要求是:当文本内容为一行是,显示在一行高度,时间和点赞图标在下一行右侧,当字符串外宽度大于一行时,则显示在第二行,但但是,第二行在文本距右侧时间固定距离时显示省略号打点结束。

我的解决方案是,采用两个TextView显示,当为一行时,显示在第一个文本框,为两行时,把字符串截取,第二行显示在第二个文本框,固定第二行文本框的

 android:singleLine="true"
  android:ellipsize="end"

主要思路就是这样,但是一直在困扰自己的事字符串截取问题:

原理Android SDK 自带的截取字符的方法:

经过自己修改符合自己的样式:

    /**
     * 截取文本相对于画板来说第一行,第二行的文本
     * @param inText
     * @param lineWidth
     * @param paint
     * @return 返回第一行、第二行的文本
     */
    public static String[] CurStringToTwoPartByTextPaint(String inText, int lineWidth, TextPaint paint) {

        if (inText != null && inText.length() > 0 && paint != null) {

            String[] strs = new String[2];
            int widthPostion = paint.breakText(inText, true, lineWidth, null);

            strs[0] = inText.substring(0, widthPostion);

            if (widthPostion < inText.length()) {

                strs[1] = inText.substring(widthPostion, inText.length());

            }
            else {

                strs[1] = "";
            }

            return strs;
        }

        return null;
    }

在使用时如下:

String  title  []  =  GlobalInfo.CurStringToTwoPartByTextPaint(titleStr.toString(),m.title.getMeasuredWidth(),m.title.getPaint());


 m.title.setText(title[0].toString());

 m.title_two.setText(title[1].toString());
版权声明:本文为博主原创文章,未经博主允许不得转载。

TextView---自定义样式

有时候需要自定义一个按钮,用textview也可以实现 (1)创建一个供TextView使用的背景selector并且放到drawable文件夹下面 ...
  • u012611418
  • u012611418
  • 2016年02月15日 10:59
  • 841

android TextView自定义字体样式

昨天工作中偶然发现某款app的字体样式不是android自带的字体样式,看着很舒服。研究了一下发现还挺简单的。 1.从网上搜索一下字体格式文件(.ttf格式,百度上有很多)。下载,放置到eclip...
  • tyk9999tyk
  • tyk9999tyk
  • 2016年10月09日 10:33
  • 1945

TextView长按复制实现方法小结

有这么一个需求,用户在浏览文本信息时希望长按信息就能弹出复制的选项方便保存或者在别的页面使用这些信息.类似的, 就像长按WebView或者EditText的内容就自动弹出复制选项. 这里面主要是2个特...
  • stzy00
  • stzy00
  • 2014年11月25日 10:23
  • 12061

【Android】在控件、视图绘制或改变之后如何获取其部分状态和属性(比如高、宽、TextView绘制后的文字行数等)

拿 Textview 来讲,比如我从服务器获取到一串字符,然后给 Textview 设置 text,当显示出来后想获得其行数。 当 Textview 没有绘制出来前我们通过 Textview.getL...
  • libra_louis
  • libra_louis
  • 2017年02月23日 14:39
  • 390

Android自定义TextView省略号样式

在布局xml中设置textView的字段 android:maxLines="2"  android:ellipsize="end"字段之后,textview会自动压缩行数,并且对压缩掉的部分用......
  • lvshaorong
  • lvshaorong
  • 2015年12月06日 22:44
  • 3378

Android之——自定义TextView

在这一篇博文中,将向大家介绍如何以最简单的方式,来自定义Android中的控件,下面我们以自定义TextView为例来向大家介绍如何自定义Android中的控件。 首先,我们来简单说一下Android...
  • l1028386804
  • l1028386804
  • 2015年07月27日 11:48
  • 6446

自定义控件,可以伸缩的textview

项目需求,某些textview如果超过两行,需要隐藏,右边有个图片,点击可以张开查看全部内容,也可以点击收缩。package zivixgroup.com.skilltemp.widget;impor...
  • u010499721
  • u010499721
  • 2015年08月07日 14:25
  • 821

Android 获取textView高度的N种方式

TextView在绘制完成之前不管是getHeight方法还是getMeasuredHeight方法拿到的都是0.然而有些地方需要在TextView绘制完毕后就拿到TextView的高度甚至行数,本文...
  • lvshaorong
  • lvshaorong
  • 2016年04月06日 20:09
  • 10076

TextField和TextView字数超出截取问题

在IOS开发中,我们经常需要对textfield和textView中的文字进行限制, 对于超出限制的内容进行截取。但在实际开发过程中会遇到一些问题: 1.在输入中文的时候,系统会在你开始拼音的时候...
  • lzmy1993
  • lzmy1993
  • 2015年11月13日 14:14
  • 803

Android UI设计之<四>自定义TextView属性,实现带边框效果的TextView

在Android开发过程中,如果Android系统自带的属性不能满足我们日常开发的需求,那么就需要我们给系统控件添加额外的属性了。假如有个需求是实现带下划线的文本显示(下划线),如果不使用自定义属性的...
  • llew2011
  • llew2011
  • 2014年06月13日 20:15
  • 2931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串截取符合TextView自定义样式
举报原因:
原因补充:

(最多只允许输入30个字)