Android:将TextView背景图像缩放为适合XY

Dav*_*ave 8 android textview android-layout

我有以下textview,它使用一个简单的navbar 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" />
Run Code Online (Sandbox Code Playgroud)

问题是,在较大的屏幕上,导航栏不会水平缩放以适应屏幕,我该如何解决这个问题?

Han*_*ans 9

将一个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>
Run Code Online (Sandbox Code Playgroud)


Sid*_*ele 5

android:background设置为a TextView(在此上下文中)没有属性android:scaleType="fitXY"(或任何其他值).该属性在ImageViews和上找到ImageButtons.

话虽如此,我会就你目前的情况提出2条建议.

  1. 更改android:layout_width="wrap_content"android:layout_width="fill_parent".当然,TextView的drawable设置将尊重TextView的宽度.我只是推测(在OP中没有截图)内容在较大的显示器上不够宽以填充宽度.

  2. 如果您还没有这样做,请使用Shape Drawable XML9-patch.这将确保跨多种屏幕尺寸的一致质量.

如果我完全错了,请发布一个屏幕截图.这将使事情变得更加清晰.;-)