我正在研究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>
答案 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。你可能想要挑选最受欢迎的那些,并且只是针对那些。