为什么layout_weight在不同设备上的工作方式不同

时间:2012-06-07 11:40:36

标签: android android-layout android-xml

我有xml,其中图像占据屏幕的60%:

                   <RelativeLayout
                        android:id="@+id/rl_images_layout"
                        android:layout_width="0dp"
                        android:layout_weight="6"
                        android:layout_height="wrap_content" 
                        android:layout_marginBottom ="5dp">

                        <com.my.proj.view.ContentUpdatableImageView
                            android:id="@+id/iv_template1_image"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:adjustViewBounds="true"
                            android:scaleType="fitStart" />

                        <ImageView
                            android:id="@+id/ivResizeIcon"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_alignRight="@id/iv_template1_image"
                            android:layout_alignTop="@id/iv_template1_image"
                            android:background="@drawable/btn_pinch" />

                        <ImageView
                            android:id="@+id/ivRotateIcon"
                            android:layout_width="55dp"
                            android:layout_height="55dp"
                            android:layout_alignRight="@id/iv_template1_image"
                            android:layout_alignBottom="@id/iv_template1_image"
                            android:layout_marginRight="5dp"
                            android:layout_marginBottom="5dp"
                            android:background="@drawable/btn_rotate"
                            android:visibility="gone" />
                 </RelativeLayout>
                 <View 
                     android:layout_width="0dp"
                     android:layout_height="fill_parent"
                     android:layout_weight="4" />

在一部手机上它工作正常(LG P500),但在其他设备(HTC Desire HD)上,图像仅填充40%。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

你错过了一件事。

如果您使用的是android:layout_weight,则两个视图的fill_parent/match_parent参数都应为layout_heigth(如果您要展开屏幕)

因此,请将第一个视图中的layout_heigth更改为:

android:layout_height="fill_parent" 

答案 1 :(得分:0)

我认为这是因为像素密度

请检查

Android: screen support

答案 2 :(得分:0)

试试这个

    android:weightSum="100"  //for parent layout 

    android:layout_weight="60" // for first child //In your case relative layout

    android:layout_weight="40" //for second child //In your case view