gpt4 book ai didi

android - mdpi 设备的自定义 dimens.xml - 如何完成?

转载 作者:行者123 更新时间:2023-11-29 20:54:43 25 4
gpt4 key购买 nike

我的应用程序有布局,在所有设备上看起来都很完美,除了具有 mdpi 屏幕命运的设备。 Activity 不适合在 mdpi 设备上显示。

所以我想为这些类型的设备创建特殊的 dimens.xml。我在“values”文件夹旁边创建了“values-mdpi”文件夹,在其中创建了新的 dimens.xml 并为 mdpi 设备设置了 dimens 值。

res/values/dimens.xml:

<resources>

<dimen name="logo_block_height">100dp</dimen>

</resources>

res/values-mdpi/dimens.xml:

<resources>

<dimen name="logo_block_height">50dp</dimen>

</resources>

以及使用该尺寸的 ImageView:

 <ImageView
android:layout_width="250dp"
android:layout_height="@dimen/logo_block_height"
android:id="@+id/font_logo" android:adjustViewBounds="false" android:src="@drawable/bg_font_logo"
android:layout_marginTop="20dp" android:layout_marginBottom="20dp"/>

问题是值现在适用于所有设备,不仅适用于 mdpi,还适用于 hdpi、xhdpi、xxhdpi。

我希望它像那样工作:

  • 如果设备屏幕命运为 mdpi 或更低 - 使用 values-mdpi 文件夹中的值

  • 如果设备屏幕命运大于 mdpi - 使用默认的“值”文件夹。

如何实现?

最佳答案

所以我只想出了一个解决方案,没有为每个屏幕密度创建值文件夹。

当至少创建了一个具有命运限定符的“值”文件夹时,android 会为设备屏幕命运选择最合适的文件夹。这就是为什么它为大于或小于 mdpi 的所有内容选择“values-mdpi”的原因。

另外,喜欢ataulm说,在那种情况下使用屏幕密度限定符是没有意义的。我可以拥有 340x480 和 160dpi 的手机,其中内容不适合,而平板电脑具有 1280x800 和 160dpi 的可用空间太多。

我通过创建带有最小高度限定符的 Values 文件夹解决了这个问题。我有一个文件夹“values-h480dp”,其中包含每个设备的最小可用高度为 480 dp 的值,并将默认值放入其中。在默认的“值”文件夹中,我为小屏幕设备设置了值。

现在它像我需要的那样工作:

  • 如果设备的可用高度超过 480dp - 它使用“values-h480dp”文件夹中的值。
  • 如果设备的可用高度小于 480dp - 它使用“值”文件夹中的值。

抱歉我的英语不好,希望这对某人有所帮助。

关于android - mdpi 设备的自定义 dimens.xml - 如何完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28115430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com