在LinearLayout附近显示imageView

时间:2012-03-22 09:28:14

标签: android android-layout

我想在LinearLayout附近显示图片。我想做以下几点:

+---------------------------------------------------+
|                                                   |
|textView1       +------------+                     |
|button1         |imageView1  |                     |
|                |            |                     |
|                |            |                     |
|                |            |                     |
|                +------------+                     |
|                                                   |
|                                                   |
|                                                   |
+---------------------------------------------------+

但是这段代码:

<?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:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="96dp"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />

    </LinearLayout>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/picture" />

</LinearLayout>

我可能会得到类似的东西(我看不到图片):

+---------------------------------------------------+
|                                                   |
|textView1                                          |
|button1                                            |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
+---------------------------------------------------+
 imageView1

我该如何解决?提前谢谢。

4 个答案:

答案 0 :(得分:2)

您需要使用RelativeLayout来管理它。

<?xml version="1.0" encoding="utf-8"?>

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />


<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/picture" />

现在一切都在顶部屏幕上。尝试按照自己的意愿设置所有内容。

答案 1 :(得分:1)

LinearLayout 垂直水平顺序放置视图。您需要使用 RelativeLayout 来实现此目的。

使用 RelativeLayout 时,将android:layout_centerInParent="true"设置为您的 ImageView ,它会发挥魔力

答案 2 :(得分:0)

使用以下代码

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="96dp"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/picture" 
    android:totheRightof=android:id="@+id/linearLayout1"
    android:marginLeft="20dp"/>

答案 3 :(得分:0)

您需要在布局中包含ImageView以实现您想要的效果。

尝试使用此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="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="96dp"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_gravity = "center"
        android:layout_marginBottom = "40dp"
        android:layout_height="wrap_content"
        android:src="@drawable/picture" />

</LinearLayout>

</LinearLayout>

所以在这里你告诉Android你希望ImageView成为LinearLayout的一部分,如果你使用RelativeLayout,你可以做得更好,但这是你的解决方案问题

编辑:

如果您想使用相对布局来实现相同的目标,那么这就是方式..

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_marginTop="40dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Button" />
    </LinearLayout>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_centerHorizontal="true"
        android:src="@drawable/ic_launcher" />

</RelativeLayout>