2015-08-20 82 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> 
相关问题