android - 如何在 Android 中的 TextView 上撤消 mask 过滤器模糊

标签 android mask blur

我使用了 here 中的代码模糊一些文本:

    val radius = msgText.getTextSize() / 3
    val mTextFilter = BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL)
    msgTextView.getPaint().setMaskFilter(mTextFilter)

...在某些时候我想取消模糊所以我尝试了:

msgTextView.getPaint().setMaskFilter(null)

但这并不清除文本中的模糊,尽管有描述:

package android.graphics;

...

public class Paint {

...
/**
     * Set or clear the maskfilter object.
     * <p />
     * Pass null to clear any previous maskfilter.
     * As a convenience, the parameter passed is also returned.
     *
     * @param maskfilter May be null. The maskfilter to be installed in the
     *                   paint
     * @return           maskfilter
     */
    public MaskFilter setMaskFilter(MaskFilter maskfilter) {
        long maskfilterNative = 0;
        if (maskfilter != null) {
            maskfilterNative = maskfilter.native_instance;
        }
        nSetMaskFilter(mNativePaint, maskfilterNative);
        mMaskFilter = maskfilter;
        return maskfilter;
    }
...
}

所以我很困惑。有什么想法吗?

最佳答案

您的代码是完美的,只是您需要根据需要添加这些行!

设置模糊效果

val radius = msgText.getTextSize() / 3
val mTextFilter = BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL)
msgTextView.getPaint().setMaskFilter(mTextFilter)

去除模糊效果

msgTextView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
// Clear any previous 
MaskFilter mTextView.getPaint().setMaskFilter(null);

应用内部模糊

applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.INNER);

应用外部模糊

applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.OUTER);

应用普通模糊

applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.NORMAL);

应用实体模糊

applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.SOLID);

这里 applyBlurMaskFilter() 是用户定义的方法。

关于android - 如何在 Android 中的 TextView 上撤消 mask 过滤器模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49774819/

相关文章:

java.lang.NoClassDefFoundError : org. apache.http.Consts

swift - UIScrollView 上的渐变 mask 更新缓慢

arrays - 仅按第一个位置创建蒙版

javascript - 垂直文本菜单上的模糊鱼眼效果

javascript - 带有清晰图标的输入 - 失去焦点问题

javascript - @click 事件不会与带有@blur 的元素一起触发

java - Eclipse 中缺少构建路径条目

c# - 我怎样才能编写一个 Android 应用程序来获得某种独特的值(value)?

Android - 使整个搜索栏可点击

delphi - Delphi中识别计算机的子网掩码