嗯,从某种意义上说,你是对的,android 应该根据不同的密度采用布局,但有些移动设备不属于特定的密度。因此android会从布局目录中获取默认布局。
为了支持多种屏幕分辨率,为不同的屏幕尺寸提供不同的布局,可以在 res 目录下像这样制作以下目录
layout-hdpi
layout-mdpi
layout-xhdpi
layout-xxhdpi
layout-w320dp-h408dp
layout-w480dp-h800dp
layout-w480dp-h854dp
layout-w720dp-h1280dp
layout-w1080dp-h1920dp
当您在所有这些目录中提供布局时,您还将为不同尺寸提供多屏幕支持
布局-w1440dp-h2560dp
改用“dip”,它们将帮助您调试布局,因为它们会尝试使多个屏幕分辨率保持一致的大小,
<ImageView
android:id="@+id/avtar_animation_11"
android:layout_width="45dip"
android:layout_height="45dip"
android:src="@drawable/avtar011"/>
虽然当您为尺寸提供“dp”时支持多屏幕,但实际上android希望您为不同的屏幕分辨率提供不同的值。让我们说下面是您的 imagview 尺寸在您的 android 项目的 res 文件夹中创建几个文件夹,如下所示
values-hdpi, values-mdpi, values-ldpi, values-xhdpi, values-xxhdpi
并在其中分别创建一个dimens.xml 文件并写入
<dimen name="image_view_width">28dp</dimen>
<dimen name="image_view_height">28dp</dimen>
现在我在这里提到了“dp”而不是 dip android 希望我跟踪不同屏幕分辨率的不同尺寸,所以我将更改 image_view_width 和 image_view_height 值位于 dimens.xml 所在的单独值文件夹中。确保您的 dp 值根据您希望视图适合的屏幕分辨率进行更改。
<ImageView
android:id="@+id/avtar_animation_11"
android:layout_width="@dimen/image_view_width"
android:layout_height="@dimen/image_view_height"
android:src="@drawable/avtar011"/>
困难的部分现在已经结束,android 将根据您的应用程序正在运行的屏幕选择一个 dimens.xml 值,瞧,现在您的布局摇摆不定