我有一台屏幕分辨率为 1280*720 像素的 Micromax AQ5000 和分辨率为 720 x 1280 像素的摩托罗拉 Moto G XT1033。我有一个名为 layout-sw360dp 的布局文件夹,它是为三星 s4、s3、Micromax Canvas 等设备设计的等等,但此摩托罗拉设备也使用相同的布局,这会导致显示的图像失真。
我如何为小型设备(Moto g)创建一个文件夹我试过 layout-xhdpi 但它不起作用我如何用高度和宽度命名布局。
最佳答案
从某种意义上说,你是对的,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 值根据您希望 View 适合的屏幕分辨率而变化。
<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 值,瞧,现在您的布局很不错了
关于不同高度的 Android 设备采用相同的布局文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29025843/