如何仅在Android中的textview的可绘制部分应用背景?

时间:2015-02-26 22:52:21

标签: android textview android-drawable

我在布局中有一个带有可绘制集(leftDrawable)的textview。我想将背景仅应用于可绘制部分,文本应出现在背景之外。这可能吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用Shape Drawable作为背景的图层列表。

http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList

http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

例如,在您的布局中,您可以像TextView这样:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/left"
    android:text="Hello world!" />

包含图层列表的可绘制参考drawable/left.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/background"/>
    <item android:drawable="@drawable/ic_launcher"/>
</layer-list>

要显示的图标可以是任何可绘制的,这里是用于测试目的的启动器图标。背景drawable在drawable/background.xml中定义,其中包含一个形状:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
    <size
        android:height="48dp"
        android:width="48dp" />
    <solid android:color="#ffff0000" />
</shape>

你的背景当然不是一个形状,它可以是任何其他可绘制的。