我有一个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"/>
答案 0 :(得分:1)
现在我真的了解你的问题。 Android并没有缩小图像背景的尺寸。在您的示例中,Background是宽度提供者。
为了您的目的,只需绘制一个9补丁图像,您可以在其中声明拉伸的区域(尝试仅标记未舍入的区域以获得更好的结果)以及应显示内容的位置。
Google有一个非常好的DOC: Documentation
请记住,9个Patch图像只是被拉伸而没有缩小尺寸所以我只使用最小宽度的图片。就像这样做,并使其成为9Patch
答案 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>