2015-08-20 72 views
0

我試圖在文本視圖旁放置一個imageview。然而,他們不斷結束在不同的「線路」。在文本視圖旁放置imageview

<ImageView 
     android:layout_width="10dp" 
     android:layout_height="wrap_content" 
     android:id="@+id/medication_administration_time_row_fmk_icon" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/medication_administration_time_row_fmk_icon" 
     android:id="@+id/medication_administration_time_row_drug" /> 

將圖像放置爲複合繪圖不是一個選項,因爲它用於其他圖像。

任何關於如何在文本的同一行上獲取圖像的線索?

+1

正是你想要什麼?分享一些截圖。 –

+0

你能詳細說明一下嗎? –

+0

發佈您的完整xml –

回答

3

我想給你一些當你試圖讓應用程序的UI提示。你應該做的第一件事是嘗試使用設計工具獲得你想要的UI,你可以放置UI元素,更重要的是你也可以看到你可以爲特定佈局設置哪些屬性。這會爲你節省一些時間。

回答你的問題將是線性佈局,這是最簡單的方法來做到這一點。只是儘量避免權重(這裏不是必需的),因爲它需要更多時間來創建UI。

這裏是很好的教程,以更好地理解佈局。

http://www.androidhive.info/2011/07/android-layouts-linear-layout-relative-layout-and-table-layout/

當然答案和你的問題(這樣做只是通過使用設計工具):

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

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:gravity="center_vertical|center_horizontal"> 

     <ImageView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/imageView2" 
      android:background="@drawable/your_image" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceSmall" 
      android:text="Small Text" 
      android:id="@+id/textView2" 
      android:gravity="right" /> 
    </LinearLayout> 

</LinearLayout> 
0

用化合物可繪製

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toLeftOf="@id/medication_administration_time_row_fmk_icon" 
    android:id="@+id/medication_administration_time_row_drug" 
    android:drawableLeft="@drawable/your_image_name /> 

在此您設置ImageViewTextView

否則左側,如果你想以此作爲單獨的組件意味着試試這個(做的另一種方式)

<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="center_vertical"> 

<ImageView 
    android:layout_width="10dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/medication_administration_time_row_fmk_icon" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toLeftOf="@id/medication_administration_time_row_fmk_icon" 
    android:id="@+id/medication_administration_time_row_drug" /> 

</LinearLayout> 

更改android:orientationLinearLayout以防萬一您要垂直,根據ly

+0

他不想使用複合繪圖。 –

+0

是的,看到編輯我的答案! –

2

有兩種方法可以實現這一點。

  1. 使用LinearLayout作爲具有垂直或水平方向的容器/父級,它適合您的需求。

  2. 您可以使用相對佈局作爲容器/父級,然後使用「toRightOf」或「above」/「below」屬性並使用您的子視圖的ID。

更好的方法是第一個,因爲相對佈局測量兩次。

+1

最好的方法是使用**複合drawable **。 –

+0

但他不想使用複合繪圖。關於我的兩種選擇,線性佈局是最好的方法。 –

+0

他真的**應該**總是喜歡複合繪圖。因爲它減少了查看數量並使佈局變平,從而獲得更好的性能。 –

4

使用android:layout_toRightOf: 將此視圖的左邊緣定位到給定錨視圖ID的右側。適應這種觀點和RelativeLayout.So最後的錨view.Property的右邊緣的左邊空白處,

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="horizontal" 
> 

<ImageView 
android:id="@+id/medication_administration_time_row_drug" 
    android:layout_width="10dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/medication_administration_time_row_fmk_icon" /> 

<TextView 
    android:id="@+id/descriptioncomma" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="" 
    android:layout_toRightOf="@id/medication_administration_time_row_drug" /> 

+0

imageview如何擁有兩個ID? –

0

你可以像下面這樣做

 <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="4dp" 
       android:orientation="horizontal"> 

       <ImageView 
        android:id="@+id/imageViewTipoProduto" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="16dp" 
        android:layout_marginStart="16dp" 
        android:layout_marginTop="8dp" 
        app:srcCompat="@drawable/ic_kit_produtos_white_12dp" /> 

       <TextView 
        android:id="@+id/textViewTipoProduto" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginBottom="22dp" 
        android:layout_marginLeft="8dp" 
        android:layout_marginStart="8dp" 
        android:layout_marginTop="4dp" 
        android:fontFamily="sans-serif-light" 
        android:letterSpacing="0.04" 
        android:text="@string/kit_de_produtos" 
        android:textColor="#ffffff" 
        android:textSize="14sp" 
        android:textStyle="normal" /> 

      </LinearLayout> 
相關問題