我想在屏幕中央创建一个包含6个方形按钮的简单网格。像一个菜单一样充当。问题是我不知道如何用屏幕尺寸来缩放它们。例如,在较小的屏幕上可以使用100dp的正方形,但在较大的屏幕上,它与空的空间相比相形见绌。但是,在更小的屏幕上制作更大的方块会产生相反的效果。
有没有一种简单的方法可以做到这一点,或者我需要在运行时以大量数学方式编程创建方块。
我会给代码,但我真的没有任何基本的XML文件,它难以编码方块的大小。
感谢。
答案 0 :(得分:0)
尺寸(特别是以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>