我一直在尝试将 autosize 添加到我的应用程序中,但它失败了。它从不调整文本大小。在这里,您可以预览文本视图类型(TextView 和 AppCompatTextView),它们在应用所需属性后看起来完全一样。
Nexus 10 和 Android 11 在模拟器中
这是来自华为模拟器的图像:
我尝试了以下组合,并且看起来完全一样:
颗粒状 2sp
<!-- AppCompatTextView with android: option -->
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
<!-- AppCompatTextView with app: option -->
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="16sp"
app:autoSizeMaxTextSize="100sp"
app:autoSizeStepGranularity="2sp" />
<!-- TextView with android: option -->
<TextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
<!-- TextView with app: option -->
<TextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="16sp"
app:autoSizeMaxTextSize="100sp"
app:autoSizeStepGranularity="2sp" />
颗粒状 12sp
<!-- AppCompatTextView with android: option -->
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="12sp" />
<!-- AppCompatTextView with app: option -->
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="16sp"
app:autoSizeMaxTextSize="100sp"
app:autoSizeStepGranularity="12sp" />
<!-- TextView with android: option -->
<TextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="12sp" />
<!-- TextView with app: option -->
<TextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:gravity="center_horizontal"
android:textStyle="bold"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="16sp"
app:autoSizeMaxTextSize="100sp"
app:autoSizeStepGranularity="12sp" />
这是我最新的代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:paddingRight="5dp">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="*"
android:paddingTop="10dp"
android:paddingBottom="5dp">
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblYourWeight"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/hUnits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatEditText
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:inputType="numberDecimal"
android:layout_column="0"
android:id="@+id/txtWeight" />
<androidx.appcompat.widget.AppCompatSpinner
android:layout_column="1"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/spinnerWeightUnits" />
</TableRow>
</TableLayout>
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/gUnits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:paddingTop="10dp"
android:paddingBottom="5dp" />
<androidx.appcompat.widget.AppCompatSpinner
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/spinnerUnits"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:paddingTop="10dp"
android:paddingBottom="5dp" />
<TableLayout
android:layout_weight="1"
android:stretchColumns="2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingBottom="5dp">
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblFirstCelestial"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textStyle="bold"
android:layout_weight="1"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
<androidx.appcompat.widget.AppCompatTextView
android:text="@string/lblSecondCelestial"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textStyle="bold"
android:layout_weight="1"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatSpinner
android:layout_column="0"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:id="@+id/spinnerFirstCelestial" />
<androidx.appcompat.widget.AppCompatSpinner
android:layout_column="1"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:id="@+id/spinnerSecondCelestial" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:adjustViewBounds="true"
android:layout_column="0"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:src="@drawable/earthp"
android:maxWidth="128dip"
android:id="@+id/imgFirstCelestial" />
<androidx.appcompat.widget.AppCompatImageView
android:adjustViewBounds="true"
android:layout_column="1"
android:layout_weight="1"
android:layout_width="0dp"
android:maxWidth="128dip"
android:layout_height="wrap_content"
android:src="@drawable/earthp"
android:id="@+id/imgSecondCelestial" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:layout_column="0"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:id="@+id/lblDFirstCelestial" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_column="1"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:id="@+id/lblDSecondCelestial" />
</TableRow>
<TableRow
android:layout_height="wrap_content"
android:layout_width="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:layout_column="0"
android:layout_weight="1"
android:layout_width="0dp"
android:gravity="center_horizontal"
android:layout_height="wrap_content"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:id="@+id/lblGFirstCelestial" />
<androidx.appcompat.widget.AppCompatTextView
android:layout_column="1"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:id="@+id/lblGSecondCelestial" />
</TableRow>
</TableLayout>
<androidx.appcompat.widget.AppCompatTextView
android:gravity="center_horizontal"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/lblGDescription"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:paddingTop="10dp"
android:paddingBottom="5dp" />
<androidx.appcompat.widget.AppCompatTextView
android:gravity="center_horizontal"
android:textStyle="bold"
android:autoSizeTextType="uniform"
android:autoSizeMinTextSize="16sp"
android:autoSizeMaxTextSize="100sp"
android:autoSizeStepGranularity="2sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:id="@+id/lblDWeight"
android:paddingTop="10dp"
android:paddingBottom="5dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible" />
<androidx.appcompat.widget.AppCompatImageView
android:visibility="gone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/imgWeight"
android:paddingTop="10dp"
android:maxWidth="256dip"
android:adjustViewBounds="true"
android:layout_weight="2" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="invisible" />
</LinearLayout>
</LinearLayout>
</ScrollView>
我的风格是这样的:
<style name="Theme.GNowTheme" parent="Theme.AppCompat">
<item name="android:colorPrimary">#000000</item>
<item name="android:colorPrimaryDark">#000000</item>
<item name="android:textColor">#BEBEBE</item>
<item name="android:textColorPrimary">#FFFFFF</item>
</style>
您可以在此处查看应用程序(它是用 Xamarin.Android 编写的):
https://bitbucket.org/supernovaic/gnow-android/src/autosize/
知道我在做什么错吗?谢谢。
PS:
- 知道为什么它
android:maxWidth="128dip"
也不起作用吗? - 我正在模拟器中使用带有 Android 11 的 Nexus 10 进行测试。
- 我没有要测试的物理平板电脑。