按钮定位在不同的布局

时间:2014-02-24 17:13:19

标签: android eclipse button layout resolution

我正在制作公交计划应用程序。我在主要活动中有很多按钮。我的手机有一个高清屏幕,因此我为该屏幕分辨率制作了按钮。

My main activity

如何使按钮的位置适合每个屏幕分辨率?

5 个答案:

答案 0 :(得分:1)

你可以使用GridView ...它会让你有很多按钮在屏幕上均匀分布。 你可以按照这些教程......

Android GridView Layout Tutorial

Android GridView example

Android Custom GridView Example

Android Custom GridView with Images and Text

答案 1 :(得分:1)

如果要通过xml布局创建按钮,则使用dip(与密度无关的像素)而不是px(普通像素)对它们进行大小调整。如果您从资源中提取这些图像,那么您必须拥有项目结构中相应文件夹中所有屏幕分辨率的资源(hdpi,mdpi,ldpi等) - 但这会消耗相当多的内存。

答案 2 :(得分:0)

您可以将GridView用于此目的。

答案 3 :(得分:0)

如果您不想使用GridView,可以使用线性垂直方向作为主布局和线性布局,其中包含“水平”方向的按钮作为行。 要使按钮在不同分辨率上适合相同的空间,可以使用layout_weigth属性。

像这样的东西

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

        <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

        <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

        <!-- yo can define as much buttons as you want -->

        </LinearLayout>

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

        <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

        <Button
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>

        <!-- yo can define as much buttons as you want -->

 </LinearLayout>    

<!-- and so on -->


</LinearLayout>

以这种方式定义布局可能不利于性能,因此请谨慎使用

答案 4 :(得分:0)

您可以使用7行

的网格视图
GridView gridView = new GridView(context);
   gridView.setNumColumns(7);