Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道字符串是否已省略_Android - Fatal编程技术网

Android 如何知道字符串是否已省略

Android 如何知道字符串是否已省略,android,Android,我在文本视图中有一个字符串: <TextView android:id="@+id/comment_concent" android:maxLines="2" android:textColor="#FFCD3333" android:ellipsize="end" android:layout_marginRight="5dip"

我在文本视图中有一个字符串:

<TextView   
             android:id="@+id/comment_concent"
             android:maxLines="2"
              android:textColor="#FFCD3333"
             android:ellipsize="end"
             android:layout_marginRight="5dip"
             android:layout_width="210dip"
             android:layout_height="50dip"
             android:textSize="15sp" 
             android:text="aaddadadddddddddddddddddddddddddddddddddddddadddddddd"/>


有时文本仅为“addadaddad”,换句话说,字符串长度是不固定的,因此如果字符串太长,您知道结尾显示为“…”,我的问题是,如果字符串以“…”结尾,如何知道字符串以“…”结尾,我将调用其他方法来显示整个字符串。

使用paint对象测量文本,查看其宽度是否大于TextView

Paint paint =  new Paint();
paint.setTextSize(textView.getTextSize());
final float size = paint.measureText(textview.getText());
if ((int)size > textView.getWidth()) {
     // text is elipsized.
}
编辑:
更好的是,只需从textview设置textsize,而不是计算,然后测量文本。编辑了上述代码。

请查看此代码。这对你有帮助

 TextView textView=(TextView) yourtextviewId;
              Layout l = textView.getLayout();
                if ( l != null){
                    int lines = l.getLineCount();
                    if ( lines > 0)
                        if ( l.getEllipsisCount(lines-1) > 0)
                            Toast.makeText(getApplicationContext(), textView.getText().toString(), Toast.LENGTH_LONG).show();
                }