应用BlurMaskFilter时TextView被切断

时间:2019-05-13 15:56:16

标签: java android kotlin

我想使TextView的文本模糊,但是文本被左右切掉。

Image of the cut off text

我尝试增加填充和边距。更改了重力,启用/禁用字体填充。设置一个固定的高度,减小字体大小等。所有操作都得到相同的结果:侧面被切除。

掩码过滤器的设置只有两行:

textView.paint.maskFilter = 
    BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL)
textView.postInvalidate()

这是我的XML布局的样子:

<TextView 
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="-1dp"              
    android:includeFontPadding="false"
    android:layerType="software"
    android:textSize="48sp"
    tools:textColor="@color/solid_white"
    tools:text="132" />

我正在寻找一种解决方案,以完全看到文本而不会在边缘出现切痕。

2 个答案:

答案 0 :(得分:0)

从您的Style.xaml标记中删除此属性:

<TextView>

视图要超出其范围,则需要硬件加速。请注意,这里的填充无济于事,因为视图内容也会被填充裁剪掉。

答案 1 :(得分:0)

在尝试了大量替代方案后,使用 LeadingMarginSpan.Standard(margin) 来偏移文本就成功了。我覆盖了类并在那里添加了模糊蒙版,而不是使用 MaskFilterSpan