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

时间:2013-02-20 11:10:39

标签: android android-layout textview

我有以下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" />

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

4 个答案:

答案 0 :(得分:7)

将一个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>

答案 1 :(得分:5)

将android:background设置为TextView(此上下文中的 )没有属性android:scaleType="fitXY"(或任何其他值)。该属性位于ImageViewsImageButtons

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

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

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

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

答案 2 :(得分:0)

您需要修改android:layout_height="50dp"才能使视图“更高”,例如match_parent而不是50dp

答案 3 :(得分:0)

您应该使用nine patch作为背景图片。希望这会对你有所帮助。