Check if textview is ellipsized in android

android, ellipsis, textview

Solution

You can use this method provided: getEllipsisCount

Layout layout = textview1.getLayout();
if(layout != null) {
    int lines = layout.getLineCount();
    if(lines > 0) {
        int ellipsisCount = layout.getEllipsisCount(lines-1);
        if ( ellipsisCount > 0) {
            Log.d(TAG, "Text is ellipsized");
        } 
    } 
}

where line could be obtained via getLineCount()

Problem

I have `TextView` with width as `wrap content`. In this `TextView` I set text, but text is not of the same length every time. When text is very long I use single line true and `ellipsize`: end. But now I have a problem. I want to set Visibility of other layout but that depends on the length my text. If text is too long to fit in the screen I want to setVisible true, but when text is short and when I don't need ellipsize, I want to set visibility false. So I need to check status of my TextView. When its ellipsize I want to `setVisible` true, when its not `setVisible` false. How I can do that. This is what I got: ``` tvAle.post(new Runnable() { @Override public void run() { int lineCount = tvAle.getLineCount(); Paint paint = new Paint(); paint.setTextSize(tvAle.getTextSize()); final float size = paint.measureText(tvAle.getText().toString()); Log.v("a", ""+size+" "+tvAle.getWidth()); if ((int)size > (tvAle.getWidth()+10)) { allergiesLayout.setVisibility(View.VISIBLE); } else allergiesLayout.setVisibility(View.GONE); } ``` but this solution doesn't work.

Original source

Related problems