检测android TextView中的剪辑

Bri*_*ger 6 android

我的android应用程序中有一个TextView,它有一个设置的宽度.它目前的重力是"center_horitonzal"和一个textSize(9sp).我从sqlite数据库中提取值以放置此标签,并且某些值太大而无法放入当前textSize的TextView中.

有没有办法检测TextView中的文本是否会被剪裁?我想检测一下,然后降低字体直到它适合.iPhone UILabel中有一个很好的属性可以处理这个名为"adjustToFit"(也有最小字体大小),我基本上试图模仿它.

这是我正在使用的TextView的一个示例:

<TextView android:id="@+id/label5" android:layout_width="62px"
            android:layout_height="wrap_content" android:layout_x="257px"
            android:layout_y="169px" android:textSize="9sp" 
            android:textColor="#000"
            android:typeface="sans" android:textStyle="bold"
            android:gravity="center_horizontal" android:lines="1" />
Run Code Online (Sandbox Code Playgroud)

Bri*_*ger 6

我找到了一种使用TextView的Paint对象测量文本宽度的方法,并降低它直到它符合我需要的大小.这是一些示例代码:

    float size = label.getPaint().measureText(item.getTitle());
    while (size > 62) {
        float newSize = label.getTextSize() - 0.5f;
        label.setTextSize(newSize);
        size = label.getPaint().measureText(item.getTitle());
    }
Run Code Online (Sandbox Code Playgroud)