Shuhui.Li

生命不息,奋斗不止,万事起于忽微,量变引起质变 , 有木石心,具水云趣。...

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

最近在做项目时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());
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsh869/article/details/51543368
个人分类: java 基础 字符截取
想对作者说点什么? 我来说一句

TextView超链接自定义样式

2015年10月12日 1.64MB 下载

shell中字符串截取

2011年06月28日 2KB 下载

java 字符串截取工具类

2011年04月07日 11KB 下载

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭