如何知道字符串是否具有椭圆化

时间:2011-08-26 06:52:19

标签: android

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

2 个答案:

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