2012-03-22 99 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