设置了背景图片的TextView,其尺寸设置为wrap_content时,并不是适应文字内容大小

我们在做一些聊天对话框的界面设计时,经常会涉及到要写一个 包含了对话框背景的TextView,一般来说 控件的宽高是使用wrap_content属性

这个TextView背景设置为名为duihuakuang的图片

这时,图片尺寸稍大,而文字内容不多,效果如下:

设置了背景图片的TextView,其尺寸设置为wrap_content时,并不是适应文字内容大小_第1张图片


可以说是非常丑,没有任何一个软件的对话框 会设计成这样,一开始我很奇怪 为什么明明TextView的尺寸是wrap_content,但是控件的大小却不是适应文字内容呢?

折腾了一下,终于发现,这个wrap_content,字面意思就是 包含内容——也就是控件大小 适应内容的尺寸——而这个内容 不仅仅是指文字,android:background属性也会影响控件大小。

就这个例子来说,这个TextView的背景设置了一个对话框图片,同时也包含了“对话内容”四个字。那么 这个wrap_content 究竟是包含谁的大小呢?——答案就是 都要包含,无论是TextView的背景图片 还是TextView显示的文字内容都要包含在这个控件中。所以就出现了如果你的背景图片过大,那么TextView可能就 除了包含文字以外,还会因为你的背景图片过大而留出了大量空白,十分难看。


那么怎么办呢?

个人总结三个办法:

1)编写一个shape作为TextView背景

2)找一张尽可能小的背景图片(必须是.9.png格式,否则可能因为文字内容过多,导致 背景图片被拉伸而失真)



ps: 1)方法就是在你的工程中的res/drawable目录下,用代码"画“图,同时局限性也很大,只能实现一些规则形状的简单图形,具体方法网上有大量资料


具体代码示例如下:

Activity布局



      这里使用小图片作为背景 ,达到了 对话框的大小能够自适应 文字内容

       这里使用大图片作为背景


        这里使用shape作为背景



shape的代码:

background



    
    
    

真机截图:

设置了背景图片的TextView,其尺寸设置为wrap_content时,并不是适应文字内容大小_第2张图片


博客内容很简单,可是我相信应该有不少和我一样的新手遇到这个困扰,希望可以帮助到大家^ ^

你可能感兴趣的:(设置了背景图片的TextView,其尺寸设置为wrap_content时,并不是适应文字内容大小)