我的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)
我找到了一种使用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)
| 归档时间: |
|
| 查看次数: |
5241 次 |
| 最近记录: |