如何创建一个可以缩放到屏幕大小和密度的网格

时间:2013-06-10 23:35:31

标签: android grid size screen

我想在屏幕中央创建一个包含6个方形按钮的简单网格。像一个菜单一样充当。问题是我不知道如何用屏幕尺寸来缩放它们。例如,在较小的屏幕上可以使用100dp的正方形,但在较大的屏幕上,它与空的空间相比相形见绌。但是,在更小的屏幕上制作更大的方块会产生相反的效果。

有没有一种简单的方法可以做到这一点,或者我需要在运行时以大量数学方式编程创建方块。

我会给代码,但我真的没有任何基本的XML文件,它难以编码方块的大小。

感谢。

1 个答案:

答案 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>