我试图使用第三方AutuResizeTextView库,但遗憾的是它无法正常工作。在我使用它的第一种情况下,我在AutoResize视图中更改文本,每当我设置新文本时,视图的大小就会变得更小。第二种情况是我有一个AutoResize视图列表,只有一些文本正确重新调整大小。所有这些都是使用XML完成的。
链接到图书馆:https://github.com/AndroidDeveloperLB/AutoFitTextView
第一种情况:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_gravity="center" >
<com.lb.auto_fit_textview.AutoResizeTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:ellipsize="none"
android:maxLines="1"
android:textColor="@color/white"
android:id="@+id/title"
android:textSize="24sp" />
</LinearLayout>
第二种情况:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="20dp" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/place_info_container"
android:layout_centerVertical="true">
<com.lb.auto_fit_textview.AutoResizeTextView
android:id="@+id/place_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="24sp"
android:maxLines="1"/>
<com.lb.auto_fit_textview.AutoResizeTextView
android:id="@+id/place_type"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp"
android:layout_below="@id/place_name"
android:maxLines="1"/>
</RelativeLayout>
</RelativeLayout>
感谢您的帮助:)
答案 0 :(得分:4)
据我所知this custom视图效果非常好 - 它与您使用的库具有相同的功能。此外,还有很多自动调整大小文本视图的实现。如果您需要结果并且不关心您使用哪种解决方案,可以尝试使用另一种解决方案。
此外,'Grantland'的实施在ListView上运行良好(或者几个月前就可以使用)。
答案 1 :(得分:0)
如果您想要在文字过大时调整文字大小,则根本不需要使用第三方图书馆。
只需按照此操作即可。希望这有效。
TextView productName;
productName.setText("Give a very large text anc check it");
productName.post(new Runnable() {
@Override
public void run() {
int lengthCount = productName.getLineCount(); //check whether your line count goes more
if(lengthCount == 2){ //check how much lines maximum it goes and give your wish.
productName.setTextSize(TypedValue.COMPLEX_UNIT_SP,16); //reduce font size
}
}});