Android - 如何为多个屏幕设置单一布局

时间:2013-09-24 12:14:49

标签: android android-layout

我是初学者。我正在开发一个应用程序,我面临一个奇怪的布局问题。 当我在小型设备中运行我的应用程序时它工作正常,但是当我在大屏幕设备上运行它时,它的布局属性会自动更改。 如果有任何方法可以为所有屏幕尺寸以编程方式创建单个布局,请告诉我们? 我的xml是,

<RelativeLayout android:id="@+id/contents"
            android:layout_width="match_parent" 
            android:layout_height="wrap_content" >

            <ImageButton
                android:id="@+id/imgBtn1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:background="@drawable/panchangtab1" />

            <ImageButton
                android:id="@+id/imgBtn2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_margin="10dp"
                android:layout_toRightOf="@+id/imgBtn1"
                android:background="@drawable/horoscopetab1" />
</RelativeLayout>

这里我得到的第一张图片还可以,但是第二张图片的实际尺寸并不大。

6 个答案:

答案 0 :(得分:3)

你必须使用fill_parent,match_parent,wrap_content单位来表示布局的宽度和高度......你还必须使用重量来进行布局,而不是硬编码高度和宽度。

检查此链接以获取多屏幕支持布局...... http://developer.android.com/guide/practices/screens_support.html

答案 1 :(得分:1)

它对我有用

在布局声明中使用 weightsum 会对您有所帮助。

       <LinearLayout

                android:weightSum="100"   //This is horizontal layout so will work for width
                android:layout_height="wrap_content"
                android:orientation="horizontal"


                 >

                <EditText
                    android:id="@+id/txt1"
                    android:layout_weight="40" //40% for text1
                    android:layout_height="40dp"  
                    >
                </EditText>

                <EditText
                    android:id="@+id/txt2"
                    android:layout_weight="60" //60% for text2
                    android:layout_height="50dp"  

                    >
                </EditText>
            </LinearLayout>

答案 2 :(得分:0)

请浏览以下网站以开发多屏幕支持应用程序。

http://developer.android.com/training/multiscreen/index.html(也请关注子链接)http://developer.android.com/guide/practices/screens_support.html

答案 3 :(得分:0)

您应该在布局文件中使用match_parent和wrap_content。在RelativeLayout或LinearLayout或bla bla。中使用它们。

如果您希望ImageView,TextView,Button ...覆盖整个屏幕宽度,则应在 layout_width 上使用 fill_parent 。此外,如果您希望ImageView,TextView,Button ...覆盖整个屏幕高度,则应在 layout_height 上使用 fill_parent

您可以查看LayoutParams

答案 4 :(得分:0)

您可以使用match_parent,wrap_content,fill_parent等属性,不要创建硬编码布局文件。使用9个补丁图像,不是静态的,并非所有情况都满足你的条件使用9补丁,但是当你发现一些图像可以在9个补丁中工作所以制作9个补丁时,这只适用于ImageView而不是所有组件,剩下的东西TextViews,EditText等您可以使用自己的创建,但不要创建硬编码布局。

答案 5 :(得分:0)

您可以使用不同的限定符为不同的屏幕创建多个布局,如下所示:

layout-hdpi/mylayout

你应该阅读this