【问题标题】:TextView with variable width and background [duplicate]具有可变宽度和背景的 TextView [重复]
【发布时间】:2012-06-18 20:24:24
【问题描述】:

可能重复:
Why does the background of TextView change it's size?

我有一个 TextView,我将在其中动态放置文本,它有一个背景(自定义位图,不是纯色或渐变)。我希望 TextView(当然还有背景)环绕包含的文本(wrap_content)。我该怎么做?

另见Why does the background of TextView change it's size?

我发现的唯一方法是让背景位图非常小,然后它会拉伸和换行。但这不会是好的质量......

【问题讨论】:

    标签: android background textview


    【解决方案1】:

    如果您放置固定大小的背景图片,那么您的视图将采用它的大小,因此您需要使用没有大小的背景,以便它可以占用您的文本大小。为此,您可以做以下两件事:

    1.获取1像素的图片。

    2.绘制渐变图像:

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
    
        <gradient
            android:angle="270"
            android:endColor="#FFFFFF"
            android:startColor="#FFFFFF"
            android:type="linear" >
        </gradient>
    
        <corners android:radius="10dp" />
    
        <stroke
            android:width="2dp"
            android:color="#AAAAAA" />
    
    </shape>
    

    注意:详细说明请关注link

    已编辑:

    3.如果图像不是普通的或渐变的,那么您需要在每次设置文本时以编程方式设置文本视图的宽度。

    【讨论】:

    • 但是如果我的图像不同于纯色或渐变色怎么办...
    • 或者 9-patch 图像,在这种情况下可以吗?
    • 请查看编辑后的答案。
    • 九个补丁也不起作用,您需要以编程方式设置宽度。
    • 好的,谢谢。那我将采用编程方式。
    【解决方案2】:

    试试这个方法..

             EditText saveas = new EditText(context);
        saveas.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT));
    

    我觉得对你有帮助。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多