我的 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/