Android:布局在不同设备上看起来不同

时间:2014-05-11 19:19:52

标签: android layout

嗨我有一个带有imageview的活动和一个带底部按钮的行。按钮以编程方式添加到iconView布局。当我在HTC上测试我的应用程序时,按钮显示正确。

一旦我在具有较小屏幕的设备上运行它,它就会被裁剪,即仅显示按钮的顶部。

如何让我的代码设备独立?

<?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:background="#000000"
android:orientation="horizontal" >
<LinearLayout
    android:id="@+id/mainView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background2"
    android:orientation="vertical" >
    <ImageView
    android:id="@+id/imageView"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="0.95"
    android:orientation="vertical"
    android:paddingLeft="4dp"
    android:paddingTop="4dp"
    android:paddingRight="4dp"
    android:paddingBottom="4dp"
    android:src="@android:drawable/ic_menu_camera" />

    <LinearLayout
    android:id="@+id/iconView"
    android:layout_weight="0.05"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:orientation="horizontal" >
    </LinearLayout>

    </LinearLayout>

    </LinearLayout>

提前致谢。

4 个答案:

答案 0 :(得分:0)

试试这个布局:

<?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:background="#000000" >

    <RelativeLayout
        android:id="@+id/mainView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background2" >

            <ImageView
                android:id="@+id/imageView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:padding="4dp"
                android:layout_above="@+id/iconView"
                android:src="@android:drawable/ic_menu_camera" />

            <LinearLayout
                android:id="@+id/iconView"
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:layout_alignParentBottom="true"
                android:orientation="horizontal" />

     </RelativeLayout>

</LinearLayout>

答案 1 :(得分:0)

试试这个 用android创建第一个视图:layout_weight =“1”
并且没有layout_weight的静态高度,这应该解决它

答案 2 :(得分:0)

不幸的是,解决方案无效。最终我改变了我的代码并在xml中添加了按钮,而不是以编程方式添加。这很好用。我不知道为什么......

答案 3 :(得分:0)

以编程方式或XML布局添加按钮时,尝试使用LinearLayout作为按钮的父级,并利用&#34; weightsum&#34; LinearLayout的属性。

如果您要在多个视图(如按钮或textview或...)之间平均分享屏幕宽度或高度的真实状态,则可以设置&#34; layout_weight&#34 ;这些控件的财产。请注意,这仅在使用LinearLayouts时才有可能。

最后发生的是,线性布局的不动产是根据每个孩子的元素&#34; layout_weight&#34;来计算和分配的。值。

以下示例显示了如何将两个按钮放在一起并使它们平均填充屏幕的宽度:

<LinearLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:weightSum="2"
 >

     <Button
       android:id="@+id/btn_left"
       android:layout_width="0dp" // width is calculated by weight 
       android:layout_height= "wrap_content"
       android:layout_weight="1" />

     <Button
       android:id="@+id/btn_right"
       android:layout_width="0dp" // width is calculated by weight 
       android:layout_height= "wrap_content"
       android:layout_weight="1"  />

<LinearLayout/>