地铁布局对齐底部

时间:2014-11-06 23:10:13

标签: android android-layout

我正在研究Android的metro-ish布局,但我似乎可以让它在所有设备上都能正常工作。在Galaxy Note3上它没有对齐到底部(按钮之间的间隙太大),而在较小的屏幕上Galaxy Ace2它太贴合了(一些按钮彼此相邻)

这是我的布局,任何有关如何使其普及的想法都会很棒!提前致谢

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/bg_login" >

    <ImageView
        android:id="@+id/icon_photo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:src="@drawable/logo_white" />

    <Button
        android:id="@+id/btn_feed"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="@drawable/gradient_feed"
        android:drawableTop="@drawable/feed"
        android:gravity="center|center_vertical"
        android:padding="10dp"
        android:text="Feed"
        android:textColor="@color/white"
        android:textSize="10dip" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/btn_profile"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_profile"
            android:drawableTop="@drawable/profile"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Profile"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_new_challenge"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_new_challenge"
            android:drawableTop="@drawable/new_challenge"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="New Challenge"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_rankings"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:background="@drawable/gradient_rankings"
            android:drawableTop="@drawable/rankings"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Rankings"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/btn_factory"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_factory"
            android:drawableTop="@drawable/task_factory"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Task Factory"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_settings"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_settings"
            android:drawableTop="@drawable/settings"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Settings"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_gadgets"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginRight="10dp"
            android:background="@drawable/gradient_gadgets"
            android:drawableTop="@drawable/gadgets"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Gadgets"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />
    </LinearLayout>

    <Button
        android:id="@+id/btn_store"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:background="@drawable/gradient_store"
        android:drawableTop="@drawable/store"
        android:gravity="center|center_vertical"
        android:padding="10dp"
        android:text="Store"
        android:textColor="@color/white"
        android:textSize="10dip" />

    <Button
        android:id="@+id/btn_help"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:background="@drawable/gradient_help"
        android:drawableTop="@drawable/help"
        android:gravity="center|center_vertical"
        android:padding="10dp"
        android:text="Help"
        android:textColor="@color/white"
        android:textSize="10dip" />

</LinearLayout>

Samsung Galaxy Note3

Samsung Galaxy Ace2

2 个答案:

答案 0 :(得分:1)

要获得占据整个空间高度的内容,您必须使用您孩子的体重Views及其各自的身高。

我的第一张图片icon_photo无法到达。看起来不在你的截图中。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@drawable/bg_login" >

    <ImageView
        android:id="@+id/icon_photo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0"
        android:src="@drawable/logo_white" />

    <Button
        android:id="@+id/btn_feed"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_margin="10dp"
        android:background="@drawable/gradient_feed"
        android:drawableTop="@drawable/feed"
        android:gravity="center|center_vertical"
        android:padding="10dp"
        android:text="Feed"
        android:textColor="@color/white"
        android:textSize="10dip" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/btn_profile"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_profile"
            android:drawableTop="@drawable/profile"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Profile"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_new_challenge"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_new_challenge"
            android:drawableTop="@drawable/new_challenge"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="New Challenge"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_rankings"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="10dp"
            android:background="@drawable/gradient_rankings"
            android:drawableTop="@drawable/rankings"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Rankings"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

        <Button
            android:id="@+id/btn_factory"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_factory"
            android:drawableTop="@drawable/task_factory"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Task Factory"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_settings"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="10dp"
            android:layout_marginLeft="10dp"
            android:background="@drawable/gradient_settings"
            android:drawableTop="@drawable/settings"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Settings"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />

        <Button
            android:id="@+id/btn_gadgets"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_marginRight="10dp"
            android:background="@drawable/gradient_gadgets"
            android:drawableTop="@drawable/gadgets"
            android:gravity="center|center_vertical"
            android:padding="10dp"
            android:text="Gadgets"
            android:textColor="@color/white"
            android:textSize="10dip"
            android:layout_weight="1.00" />
    </LinearLayout>

    <Button
        android:id="@+id/btn_store"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:background="@drawable/gradient_store"
        android:drawableTop="@drawable/store"
        android:gravity="center|center_vertical"
        android:padding="10dp"
        android:text="Store"
        android:textColor="@color/white"
        android:textSize="10dip" />

    <Button
        android:id="@+id/btn_help"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="10dp"
        android:background="@drawable/gradient_help"
        android:drawableTop="@drawable/help"
        android:gravity="center|center_vertical"
        android:padding="10dp"
        android:text="Help"
        android:textColor="@color/white"
        android:textSize="10dip"
      />

</LinearLayout>

这些屏幕之间的差异很大。您可能需要使用values来使用不同的布局或不同的框尺寸,但如果您的drawables尺寸不同,则可以在没有多个布局的情况下进行处理。

http://developer.android.com/guide/practices/screens_support.html

答案 1 :(得分:0)

我会为不同的分辨率,密度创建不同的布局文件夹。对于所有不同的手机尺寸,我不会只使用一个xml。你可能想要挑选最受欢迎的那些,并且只是针对那些。