1

我正在尝试编写我的第一个 android 应用程序。我读了很多书,但布局有问题。两个xml都有什么问题?为了更好的理解,我做了一张图:图片

我的 main.xml 的 XML

 <?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="wrap_content"

android:orientation="vertical" >



<ImageView

    android:id="@+id/imageView1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:layout_weight="2.5"

    android:contentDescription="@string/upload"

    android:scaleType="fitCenter"

    android:visibility="visible" />



<LinearLayout

    android:layout_width="match_parent"

    android:layout_height="0dp"

    android:layout_weight="4"

    android:gravity="center"

    android:orientation="vertical" >



    <Button

        android:id="@+id/btnShoot"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:layout_marginLeft="50dp"

        android:layout_marginRight="50dp"

        android:text="@string/shoot_again" />

</LinearLayout>
</LinearLayout>

对于文件夹布局土地中的 main.xml,如果我切换到横向模式应用程序崩溃:

 <?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="wrap_content"

android:orientation="horizontal" >



<Button

    android:id="@+id/btnShoot"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:layout_gravity="center"

    android:layout_marginLeft="50dp"

    android:layout_marginRight="50dp"

    android:text="@string/shoot" />



<ImageView

    android:id="@+id/imageView1"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:contentDescription="@string/upload"

    android:scaleType="fitCenter"

    android:visibility="visible" />

 </LinearLayout>
4

1 回答 1

0

好吧,看看你的XML,有几个问题:

肖像 XML:

< ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="2.5"

在这里,你已经设置了体重和身高——LinearLayout你不能同时拥有这两者。要么你自己设置高度,要么给它一个高度0dp和一个重量,然后让LinearLayout指定高度。至于为什么要旋转,图片本身可能会在你的资源中旋转。

水平 XML:

  • 你的根LinearLayout仍然需要有一个vertical方向
  • 您的 ImageView 需要在您的 Button 上方声明

发生的事情是a)它是水平的,b)你的按钮首先被放置,并且c)你的按钮有一个android:layout_width="match_parent",这意味着ImageView没有地方可以放置,因为你的按钮已经占据了屏幕上的所有空间(你能明白为什么会这样吗?)

进行这些更改,然后酌情更新您的问题,因为我认为您的问题将会改变

于 2013-03-25T11:03:57.020 回答