1

我目前正在学习 android 开发,在我陷入一个大型项目之前,我决定我需要学习如何让应用程序可以从尽可能多的设备上访问。

所以我有一个使用RelativeLayout. 顶级活动上有 6 个大菜单按钮。这些按钮是方形图形图像(据我所知,它们不是 9-patch 按钮,图形太原始)。在我用于测试的设备上,这些按钮以完美的 2x3 排列出现,如下所示:

按钮以 3x2 排列完美布局

但是,当我尝试在更大的设备上运行此应用程序时,按钮将如下所示:

在此处输入图像描述

有没有办法根据屏幕大小缩放非 9-patch 按钮,以便它们始终像第一张图片一样显示?这是推荐的吗?如果没有,是否有另一种方法可以为不同的屏幕尺寸进行这种布局?

我理想的布局可以跨不同的设备进行扩展,如下所示:

在此处输入图像描述

4

1 回答 1

1

我正在使用类似的菜单。这是它的第一行。此菜单中的按钮也有标签。

        <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dip"
                    android:layout_marginRight="20dip"
                    android:gravity="center" >

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="5dip" >

                        <Button
                            android:id="@+id/screen_home_btn_profile"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:background="@drawable/selector_ic_my_profile" />

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentBottom="true"
                            android:layout_centerHorizontal="true"
                            android:paddingBottom="5dip" >

                            <TextView
                                style="@style/label_text_style_home_screen"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="@string/screen_home_label_my" />

                            <TextView
                                style="@style/label_text_style_home_screen"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="@string/screen_home_label_profile"
                                android:textStyle="bold" />
                        </LinearLayout>
                    </RelativeLayout>

                    <RelativeLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_margin="5dip" >

                        <Button
                            android:id="@+id/screen_home_btn_application"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:background="@drawable/selector_ic_my_application" />

                        <LinearLayout
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignParentBottom="true"
                            android:layout_centerHorizontal="true"
                            android:paddingBottom="5dip" >

                            <TextView
                                style="@style/label_text_style_home_screen"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="@string/screen_home_label_my" />

                            <TextView
                                style="@style/label_text_style_home_screen"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:text="@string/screen_home_label_application"
                                android:textStyle="bold" />
                        </LinearLayout>
                    </RelativeLayout>
                </LinearLayout>

看来您正在为按钮提供外边距。将它们居中对齐,并在 2 个按钮之间留出空间,而不是屏幕边框和按钮。

于 2013-07-04T12:16:01.127 回答