字符串截取符合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());
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android截取字符串

1. String str = "a=111,b=222,c=333";   2. 把"a=111"截取出来  方法1:使用split方法 Java代码     1. String spS...

程序中动态更改TextView显示内容并获取res的字符串

以上几个程序都是在main.xml或string.xml或程序中直接设置显示内容 下面这个例子是获取res 字符串内容 (程序可以根据原始串值更改显示内容) activity 内容 ...

Android TextView字符串太长进行截取,以省略号代替

有时候我们会遇到这样的问题,一个大字符串写到TextView里面,根本写不下,但是该字符串并不是固定的,所以我们不知道需要定多长的TextView 所以对于过长的字符串我们最后以省略号代替。如下所示...

Android TextView控件某个字符串特殊效果

给textview或者edittext控件中字符串中的某几个字符添加特殊效果,比如下划线、颜色、url等等特效,如下代码可以解决: // 电话号码需要特殊处理,有下划线和红色 String...

Android 字符串资源中定义显示样式

在字符串资源的xml文件中可以添加, HTML 标签 , 和.    This is an underline.在代码使用:TextView textView =(TextView) view.fin...

Android string.xml字符串的格式化和样式

1.字符串资源字符串资源为您的应用提供具有可选文本样式和格式设置的文本字符串。 共有三种类型的资源可为您的应用提供字符串: String,String Array,Quantity Strings (...

腾讯云直播相关问题处理

问题①:弹幕有时候没有从最右边出现,一开始就显示在弹幕区中间,是因为上一条弹幕划过改变了起始位置。 在添加弹幕前暂停,添加完之后恢复,要注意的是该方法有可能阻塞消息并发,最好放在最终添加弹幕处处理...

判断手机SD卡是否挂载正常

在往手机SD卡中写入文件或文件夹时,首先要判断手机SD卡的挂载状态。 我们可以用Environment.getExternalStorageState()返回一个自定义字符串sdStatus,这个字...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串截取符合TextView自定义样式
举报原因:
原因补充:

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