将imageview放在textview旁边

时间:2015-08-20 09:00:27

标签: android android-layout

我正在尝试将textview放在textview旁边。然而,他们总是在不同的“线”上结束。

void replace(char *str) {
    unsigned int len = 0;
    unsigned int no_of_spaces = 0;
    while (*str) {
        if ((char)*str == SPACE)
            no_of_spaces++;
        str++;
        len++;
    }

    unsigned int new_len = len + 2 * no_of_spaces;
    str = (char*) realloc(str, new_len * sizeof(char));
    str[new_len] = '\0';
}

将图像作为复合绘图放置不是一个选项,因为它用于另一个图像。

有关如何将图像与文本放在同一行的任何线索?

5 个答案:

答案 0 :(得分:5)

当您尝试制作应用的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>

答案 1 :(得分:4)

使用 android:layout_toRightOf : 将此视图的左边缘定位到给定锚点视图ID的右侧。容纳此视图的左边距和锚视图的右边距.LateLayout的属性。最后,

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

答案 2 :(得分:3)

有两种方法可以实现这一目标。

  1. 使用LinearLayout作为容器/父级,具有垂直或水平方向,适合您的需要。

  2. 您可以将相对布局用作容器/父级,然后使用&#34; toRightOf&#34;或&#34;以上&#34; /&#34;以下&#34;财产并使用您孩子观看的ID。

  3. 更好的方法是第一个,因为相对布局测量两次。

答案 3 :(得分:0)

使用Compound Drawable

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

在此设置ImageView左侧的TextView

否则,如果你想将它作为单独的组件,那就试试这个(另一种做法)

<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:orientation的{​​{1}}以防万一,如果您希望它垂直,也相应地更改LinearLayout

答案 4 :(得分: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>