4

我有一个要在 x 轴上重复以匹配宽度的图像。

repeating_section_header.xml :

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/table_section_header_light"
    android:tileMode="repeat" />

到目前为止,一切都很好。现在我将其设置为 a 的背景TextView

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row_headline_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/repeating_section_header"
    android:gravity="left|center_vertical"
    android:textColor="@color/white"
    android:textSize="14sp" 
    android:textStyle="bold"/>

但是现在 TextViews 的高度是 的高度@drawable/table_section_header_light,即使我已经将 TextViews 的高度设置为wrap_content

知道如何解决这个问题(使 TextViews 高度包装内容)

4

2 回答 2

0

一种方法是通过编程方式仅使用文本确定 textview 的高度,并固定高度,并设置背景可绘制对象。这样,它将根据使用的行数调整到 textview 的高度。

爪哇:

TextView v = (TextView) findViewById(R.id.row_headline_text);
v.setText("<your text here>");
v.measure(android.view.View.MeasureSpec.UNSPECIFIED, android.view.View.MeasureSpec.UNSPECIFIED);

android.view.ViewGroup.LayoutParams params = v.getLayoutParams();
params.height = v.getMeasuredHeight();
v.setLayoutParams(params);
v.setBackgroundResource(R.drawable.table_section_header_light);

xml:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/row_headline_text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left|center_vertical"
    android:textColor="@color/white"
    android:textSize="14sp"
    android:textStyle="bold" />
于 2013-09-23T16:08:43.397 回答
0

如果您对这种技术没意见,请尝试:

  1. 将您的 TextView 包装成一个 RelativeLayout。
  2. 添加一个 View 作为此 RelativeLayout 中的第一个子项。(让 TextView 成为第二个孩子)
  3. 将您的背景从 TextView 删除到这个新视图
  4. 将 TextView 的布局参数(AlignLeft、AlignRight、AlignTop、AlignBottom)设置为@+id/row_headline_text

这应该有效。如果 TextView 的父级已经是 RelativeLayout,则不需要新的 RelativeLayout。

于 2013-09-23T23:11:26.463 回答