我想在屏幕中央创建一个由 6 个方形按钮组成的简单网格。充当菜单。问题是我不知道如何根据屏幕尺寸缩放这些。例如,100dp 的正方形在较小的屏幕上是可以的,但在较大的屏幕上,它与空白空间相形见绌。但是让方块变大在较小的屏幕上会产生相反的效果。
有没有一种简单的方法可以做到这一点,或者我需要在运行时通过大量数学以编程方式创建正方形。
我会给出代码,但除了硬编码正方形大小的基本 XML 文件之外,我真的没有任何东西。
谢谢。
尺寸(特别是在 dp 中测量的尺寸,例如方形按钮的边或按钮之间的距离)可以在 中动态定义dimens.xml
,而通过创建特殊文件夹(例如 、 等)又可以为不同的屏幕尺寸/res/values-hdpi
定义/res/values-xlarge
尺寸/res/values-sw720dp
。里面有自己的dimens.xml
文件。有关详细信息,请参阅http://developer.android.com/guide/practices/screens_support.html。
在您的 xml 布局中,您可以:
<ImageView
android:id="@+id/button1"
android:layout_height="@dimen/button_height"
android:layout_width="@dimen/button_width"
android:layout_marginBottom="@dimen/distance_between_buttons"
android:src="/res/drawable/imgbutton"/>
<ImageView
android:id="@+id/button2"
android:layout_height="@dimen/button_height"
android:layout_width="@dimen/button_width"
android:layout_marginBottom="@dimen/distance_between_buttons"
android:src="/res/drawable/imgbutton"/>
<ImageView
android:id="@+id/button3"
android:layout_height="@dimen/button_height"
android:layout_width="@dimen/button_width"
android:src="/res/drawable/imgbutton"/>
在 /res/values/dimens.xml 你可以有:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="button_height">100dp</dimen>
<dimen name="button_width">100dp</dimen>
<dimen name="distance_between_buttons">20dp</dimen>
</resources>
在 /res/values-large 中,您可以拥有:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="button_height">200dp</dimen>
<dimen name="button_width">200dp</dimen>
<dimen name="distance_between_buttons">40dp</dimen>
</resources>