TextView背景图像没有调整文本大小

时间:2013-12-17 07:44:15

标签: android textview

我有一个textview,我已经设置了图像的背景。图像没有相对于文本调整大小。

例如: - 如果我的文字是“ A ”,则背景仍然相同,并且不会调整大小以适合文本。这是textview的xml: -

<TextView
    android:id="@+id/navmenusection_right_label_action"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="10dp"
    android:background="@drawable/textview_round_background"
    android:ellipsize="end"
    android:gravity="center"
    android:singleLine="true"
    android:text="A"
    android:textColor="#fff"
    android:textSize="13sp"
    android:textStyle="bold"/>

enter image description here

2 个答案:

答案 0 :(得分:1)

现在我真的了解你的问题。 Android并没有缩小图像背景的尺寸。在您的示例中,Background是宽度提供者。

为了您的目的,只需绘制一个9补丁图像,您可以在其中声明拉伸的区域(尝试仅标记未舍入的区域以获得更好的结果)以及应显示内容的位置。

Google有一个非常好的DOC: Documentation

请记住,9个Patch图像只是被拉伸而没有缩小尺寸所以我只使用最小宽度的图片。就像这样做,并使其成为9Patch

PIC EXAMPLE

答案 1 :(得分:0)

使用9补丁图像或创建自己的此类型的xml布局

在可绘制文件夹中创建bg.xml并设置为文本背景

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:left="1dp" android:right="1dp" android:top="1dp" android:bottom="1dp">
        <shape>
            <solid android:color="#000000" />
            <stroke
                android:width="1.2dp"
                android:color="#000000" />
            <corners android:radius="15dp" />
        </shape>
    </item>

</layer-list>