我的应用程序具有布局,除了具有mdpi屏幕命运的设备外,它在所有设备上看起来都很完美。活动不适合在mdpi设备上进行屏幕显示。
所以我想为这些类型的设备创建特殊的dimens.xml。 我创造了" values-mdpi"我的"值旁边的文件夹"文件夹,在其中创建新的dimens.xml并为mdpi设备设置尺寸值。
RES /值/ dimens.xml:
<resources>
<dimen name="logo_block_height">100dp</dimen>
</resources>
RES /值-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或更低 - 使用值-mdpi文件夹中的值
如果设备屏幕命运大于mdpi - 请使用默认值&#34;值&#34;文件夹中。
怎么做?
答案 0 :(得分:2)
所以我只想出一个解决方案,而不为每个屏幕密度创建值文件夹。
当至少一个带有命运限定符的“values”文件夹时,android会为设备屏幕命运选择最合适的文件夹。 这就是它为大于或小于mdpi的所有内容选择“values-mdpi”的原因。
另外,就像ataulm所说的那样,在这种情况下使用屏幕密度限定符是没有意义的。我可以打电话340x480,160dpi,内容不适合,平板电脑,1280x800,160dpi,可用空间太大。
我通过使用minimal-height限定符创建Values文件夹来解决这个问题。 我有文件夹“values-h480dp”,每个设备的值都有最小480 dp的可用高度,并在其中放入默认值。在默认的“值”文件夹中,我为小屏幕的设备设置值。
现在它的工作方式就像我需要的那样:
对不起我的英语不好,希望这能帮助别人。