具有不同屏幕密度的手机的应用程序布局问题

Problem with app layout for phones with different screen densities

我的应用程序布局有问题 phones 以下。第一个布局看起来不错,但第二个 phone 布局与第一个不完全一样。 尽管我将 xml 文件放在 (Layout-w480dp) 文件夹中并且我不使用约束布局

华为G8: Photo 分辨率:1920 x 1080 像素 屏幕密度:403 ppi 屏幕密度 (DPI):480 ppi (xxhdpi) (640dp) x (360dp)

华为Y9: Photo 分辨率:2160 x 1080 像素 屏幕密度:407 ppi 屏幕密度 (DPI):480 ppi (xxhdpi) (720dp) x (360dp)

感谢

将此属性添加到 xml app:autoSizeTextType="uniform" 中的 textView 这将调整文本大小以适应文本视图区域

  <TextView
    android:layout_width="50sp"
    android:layout_height="50sp"
    android:text="Hello World!"
    app:autoSizeTextType="uniform"    
    tools:ignore="MissingPrefix" />

要进一步自定义,您可以设置

    app:autoSizeMaxTextSize="100sp"
    app:autoSizeMinTextSize="20sp"
    app:autoSizePresetSizes="@array/autosize_text_sizes"

其中 autosize_text_sizes 是 arrays.xml 值 res 文件中的数组 通过右键单击值 -> 新建 -> 值资源文件 -> 将其命名为 arrays.xml,根据文本区域可用性动态选择文本大小

<?xml version="1.0" encoding="utf-8"?>
<resources>

<array name="autosize_text_sizes">
    <item>10sp</item>
    <item>50sp</item>
    <item>150sp</item>
</array>