TextView周围使用NinePatch背景填充没有视觉效果

9

我是一位有帮助的助手,可以为您进行文本翻译。

我正在尝试基于TextView创建类似Toast的控件,并且发现在将九宫格可拉伸图片作为背景时,TextView会表现出非常奇怪的行为。

以下是XML定义:

<by.pplware.view.QuickInfo
    android:id="@+id/quickinfo"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:padding="20px"
    android:textSize="20px"
    android:textStyle="bold"
    android:typeface="serif"
    android:background="#FFFF0000"
/>

这是带有颜色背景的文本视图: enter image description here

这是带有可绘制背景的文本视图: enter image description here

据我所知,在使用九宫格背景时,Android 会将填充区域设为透明,并仅将可绘制对象用作文本的背景。但我想在九宫格背景覆盖的区域中包含填充。

是否有解决此问题的方法?

1个回答

27

尝试以下任何一种:

  1. 通过XML属性"android:background"设置背景NinePatch而不是以编程方式设置;这与XML定义的填充协作。
  2. 如果需要以编程方式设置背景,请在设置背景后重新设置填充(如果您设置了填充然后设置了背景,我会认为在NinePatch中定义的填充会覆盖它)。
  3. 避免整个问题,只需在您的NinePatch图像本身中设置填充区域(即右侧和底部的黑色条)。

1
感谢评论-1和2真的很有帮助。 - Alexey Kruchenok
1
我通过在设置九宫格之前保存填充值,然后按照上述第2点重新设置填充来解决了这个问题。 - Nicholas Harlen
感谢@Yoni 2帮助了我。 - Chirag Patel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接