我在textView中有一个字符串:
<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”,换句话说字符串长度不固定,所以如果字符串太长,你知道结尾是显示“...”,我的问题是如何知道字符串如果以“...”结尾,如果字符串以“...”结尾,我将调用其他方法来显示整个字符串。
答案 0 :(得分:6)
使用绘画对象测量文本,以查看其宽度是否大于textviews。
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而不是计算,然后测量文本。编辑了上面的代码。
答案 1 :(得分:3)
请查看此代码。这对你有帮助。
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();
}