android - 在android TextView中检测剪辑

标签 android

我的 Android 应用程序中有一个 TextView,它上面设置了宽度。它目前有一个重力“center_horitonzal”和一个设置的文本大小(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" />

最佳答案

我找到了一种使用 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());
    }

关于android - 在android TextView中检测剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1563785/

相关文章:

java - Android:Java 方法调用更改输入参数

android - 在 Android 中获取 onTouch ACTION_MOVE 事件的速度

android - 无法将 "£12"nsstring 转换为 ascii 格式

android - OpenGL ES : glOrtho() shows object, 但 gluPerspective() 没有

android - 添加自定义android webview错误页面

android - 在通话期间禁用光传感器 - Android

android - 将 Spring for android 依赖项添加到 gradle + Android studio 项目

android - 按钮单击打开类中的另一个 Activity 扩展 fragment

android - 在线性布局中使用 inflator 添加表格行

android - Intent 键命名约定