具有多个Drawables的特定TextView

时间:2017-03-03 16:50:20

标签: android android-layout textview

在我的线性布局(方向:垂直)中,我有一个像这样设置的TextView:

<TextView
    android:id="@+id/myText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:maxLines="2"
    android:text="TEXT-TEXT-TEXT"
    android:layout_marginTop="5dp"
    android:textSize="10dp"
    android:layout_marginBottom="10dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="10dp"
    android:gravity="right"/>

我需要在此TextView中放置两个Drawable来生成类似 [first drawable] text [second drawable] text 的结果。

我尝试了一个简单的android:drawableStart,但它将图像放在Layout的最左边,我还需要另一个图像。

有一些优雅的解决方案可以让它发挥作用吗?感谢。

1 个答案:

答案 0 :(得分:0)

您可以通过两种不同的方式执行此操作,两种方式都基于使用带有多个组件的LinearLayout而不是单个Textview。

使用TextViews&amp; ImageViews

这种方式可以单独对每个组件(文本和图像)进行微调,但会更长一些。

将TextView替换为:

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

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/ic_menu_upload"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEXT 1"/>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/ic_menu_upload"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEXT 2"/>

</LinearLayout>

仅使用TextViews

这个较短(仅2个组件)并使用复合绘图。

将TextView替换为:

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

    <TextView
        android:drawableStart="@android:drawable/ic_menu_upload"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEXT 1"
        android:gravity="center_vertical"/>

    <TextView
        android:drawableStart="@android:drawable/ic_menu_upload"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TEXT 2"
        android:gravity="center_vertical"/>

</LinearLayout>