0

我一直在尝试将 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 进行测试。
  • 我没有要测试的物理平板电脑。
4

0 回答 0