3

我是初学者。我正在开发一个应用程序,其中遇到了一个奇怪的布局问题。当我在小型设备上运行我的应用程序时,它运行良好,但是当我在大屏幕设备上运行它时,它的布局属性会自动更改。请让我知道是否有任何方法可以为所有屏幕尺寸以编程方式创建单个布局?我的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>

在这里,我得到了第一张图片,但第二张图片不是实际尺寸。

4

6 回答 6

3

您必须使用 fill_parent 、 match_parent 、 wrap_content 单位来表示布局的宽度和高度……而且您必须使用 weight 进行布局而不是硬编码高度和宽度。

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

于 2013-09-24T12:22:38.040 回答
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>
于 2013-09-24T13:08:10.570 回答
0

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

layout-hdpi/mylayout

你应该读这个

于 2013-10-14T15:35:22.157 回答
0

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

如果你想要一个 ImageView、TextView、Button... 覆盖整个屏幕宽度,你应该在layout_width上使用fill_parent。此外,如果您想要一个 ImageView、TextView、Button... 覆盖整个屏幕高度,您应该在layout_height上使用fill_parent

你可以检查这个LayoutParams

于 2013-09-24T12:51:27.590 回答
0

请通过以下网站开发多屏支持应用程序。

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

于 2013-09-24T12:25:02.903 回答
0

您可以使用 match_parent、wrap_content、fill_parent 等属性,不要创建硬编码的布局文件。使用 9 patch 图片,不是静态的,不是所有情况都满足你使用 9 patch 的条件,但是当你发现有些图片可以在 9 patch 下工作,所以把它做成 9 patch,这只是 ImageView 不是所有组件,剩下的东西TextViews、EditText 等。您可以自己创建,但不要创建硬编码布局。

于 2013-09-24T12:59:25.463 回答