如何将复合可绘制对象放在文本视图的左上角

Posted

技术标签:

【中文标题】如何将复合可绘制对象放在文本视图的左上角【英文标题】:How to place Compound drawable on top left of Text View 【发布时间】:2013-01-21 12:06:21 【问题描述】:

我们可以使用drawableLeftsetCompundDrawables 为textview 设置复合drawable,如下所示,但使用它只能将drawable 放置在左/右/上/下。但我只想将drawable 放在左上角和 Textview 的右上角。 我怎样才能做到这一点 ?

【问题讨论】:

已经问过here 【参考方案1】:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_ >

<ImageView
    android:id="@+id/imageView1"
    android:layout_
    android:layout_
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/ic_launcher" />

<TextView
    android:layout_
    android:layout_
    android:layout_toRightOf="@+id/imageView1"
    android:text="@string/text" />

这样就可以了。

【讨论】:

使用 relativelayout 而不是 textView 的权衡是什么?【参考方案2】:

我认为,有一种比 3 个视图更简单、更快捷的方法。您需要为图标准备适当的 9patch,然后使用 FrameLayout。甚至可能只有 single EditText / TextView 使用相同的可绘制对象作为背景。更多细节在this answer中描述。

【讨论】:

以上是关于如何将复合可绘制对象放在文本视图的左上角的主要内容,如果未能解决你的问题,请参考以下文章

EditText 中可点击的复合可绘制对象,点击时会弹出一个视图

如何在xml中设置复合可绘制文本视图的高度和宽度? [关闭]

使用复合可绘制对象在 TextView 中设置实际文本填充

在 EditText 背景外绘制复合可绘制对象

仅为 TextView 复合可绘制对象实现 onClick

具有拉伸复合可绘制对象的固定宽度 TextView