2011-08-26 43 views
2

我在TextView的一个字符串:怎么知道如果字符串有ellipsize

<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”,换句话说,字符串的长度是不固定的,所以如果字符串太长了,你知道最后是显示“...”,我的问题是如何知道字符串如果以“...”结尾,如果字符串以“...”结尾,我会调用其他方法显示整个字符串。

回答

6

使用绘画对象测量文本以查看它的宽度是否大于文字浏览。

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,然后测量文本。编辑上面的代码。

+0

谢谢你,我会尝试 – pengwang

+0

看到编辑也。 – Ronnie

+0

这很好,谢谢你的回复 – pengwang

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(); 
       } 
相关问题