2012-03-22 74 views
0

我想在LinearLayout附近显示图片。我想提出以下:在LinearLayout附近显示imageView

+---------------------------------------------------+ 
|             | 
|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 

如何我能解决吗?提前致谢。

回答

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" /> 

现在一切都上屏。尽量设置一切,只要你喜欢。

+0

谢谢,它的工作。你确定没有办法通过LinearLayout来做到这一点吗? – 2012-03-22 09:35:52

+0

有1布局视图,但你会得到2/3。只需更改LinearLayout Horizo​​ntal的某个方向即可。 – goodm 2012-03-22 09:38:34

1

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

使用时的RelativeLayout,它会做魔术

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"/> 

+0

我不确定'android:totheRightof = android:id =“@ + id/linearLayout1”'应该做什么。目前它给出了一个错误,我找不到像'totheRightof'选项。 – 2012-03-22 10:06:57

0

您需要内包括您ImageView设置android:layout_centerInParent="true"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> 
+0

如果可能的话删除额外的LinearLayout,你应该没问题。 – 2012-03-22 09:44:10

+0

谢谢,但是这段代码在一个窄列中显示了所有内容,这不是我所需要的。 'RelativeLayout'似乎是最合适的解决方案。 – 2012-03-22 09:51:45