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();
}