Android:将TextView背景图缩放以适应XY

10

我有一个TextView,它使用简单的导航栏PNG文件作为其背景图像。以下是代码:

<TextView
        android:id="@+id/titleNameText"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:background="@drawable/navbar"
        android:gravity="center_horizontal"
        android:singleLine="true"
        android:textColor="@color/WHITE"
        android:textSize="18sp"
        android:textStyle="bold" />

问题在于在较大的屏幕上,导航栏无法水平缩放以适应屏幕大小,我该如何解决?

4个回答

13

将ImageView放在TextView后面,使用android:align...使其大小与TextView的大小相对应。

<RelativeLayout android:layout_width="wrap_content"
                android:layout_height="wrap_content">
    <ImageView android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:layout_alignBottom="@id/titleNameText"
               android:layout_alignLeft="@id/titleNameText"
               android:layout_alignRight="@id/titleNameText"
               android:layout_alignTop="@id/titleNameText"
               android:scaleType="fitXY"
               android:src="@drawable/navbar"/>

    <TextView
        android:id="@+id/titleNameText"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:background="@drawable/navbar"
        android:gravity="center_horizontal"
        android:singleLine="true"
        android:textColor="@color/WHITE"
        android:textSize="18sp"
        android:textStyle="bold"/>
</RelativeLayout>

5

TextViewandroid:background 属性(在这个上下文中)没有 android:scaleType="fitXY"(或其他任何值)。该属性仅适用于 ImageViewsImageButtons

话虽如此,针对您当前的情况,我有两个建议:

  1. android:layout_width="wrap_content" 更改为 android:layout_width="fill_parent"。自然地,设置给 TextView 的可绘制对象将遵循 TextView 的宽度。我只是猜测(OP 中没有屏幕截图),在更大的显示器上,内容可能不足以填充宽度。

  2. 如果您还没有这样做,请使用 Shape Drawable XML9-patch。这将确保在多个屏幕大小上具有一致的质量。

如果我完全错了,请发布屏幕截图。那会更清楚明了。;-)


0
你需要修改 android:layout_height="50dp" 以使视图更高,例如尝试使用 match_parent 而不是 50dp

0

在编程中,你应该使用九宫格来作为背景图片。希望这能对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接