Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中撤销TextView上的遮罩过滤器模糊_Android_Mask_Blur - Fatal编程技术网

如何在Android中撤销TextView上的遮罩过滤器模糊

如何在Android中撤销TextView上的遮罩过滤器模糊,android,mask,blur,Android,Mask,Blur,我使用中的代码模糊了一些文本: val radius = msgText.getTextSize() / 3 val mTextFilter = BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL) msgTextView.getPaint().setMaskFilter(mTextFilter) …在某个时候,我想撤销模糊,所以我尝试: msgTextView.getPaint().setMaskFilter(null)

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

    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);

这里,ApplyBrumaskFilter是用户定义的方法。

您的代码非常完美,只需根据需要添加这些行即可

设置模糊效果的步骤

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是用户定义的方法。

您是否在清除筛选器后立即尝试了msgTextView.invalidate?请尝试此操作,然后告诉我,mTextView.setLayerTypeView.LAYER_TYPE_软件,null;//清除任何以前的MaskFilter mTextView.getPaint.setMaskFilternull;谢谢他们都工作!我将使用@Radhey的答案,因为我已经设置了mTextView.setLayerTypeView.LAYER\u TYPE\u SOFTWARE,null;当我设置模糊时。如果您将其添加为答案,我将接受。您是否在清除筛选器后立即尝试了msgTextView.invalidate?尝试此操作并让我知道,mTextView.setLayerTypeView.LAYER_TYPE_SOFTWARE,null;//清除任何以前的MaskFilter mTextView.getPaint.setMaskFilternull;谢谢他们都工作!我将使用@Radhey的答案,因为我已经设置了mTextView.setLayerTypeView.LAYER\u TYPE\u SOFTWARE,null;当我设置模糊时。在我的api 24仿真器中,在模糊文本视图后,应用程序中的任何文本视图都会停留在模糊模式。它不适用于当前文本视图,但适用于所有文本视图。getPaint文档中有一个警告:/***获取用于文本的{@link TextPaint}。*使用此选项仅用于参考油漆的属性,而不是更改它们。*@返回用于文本的底色*/发布你的代码。希望您已经应用了正确的TextView引用。尝试在真实设备中进行交叉检查。msgTextView.setLayerTypeView.LAYER_TYPE_软件,null;在设置模糊遮罩之前添加此选项修复了该问题。感谢我的api 24模拟器,在模糊了文本视图后,应用程序中的所有文本视图都保持在模糊模式。它不适用于当前文本视图,但适用于所有文本视图。getPaint文档中有一个警告:/***获取用于文本的{@link TextPaint}。*使用此选项仅用于参考油漆的属性,而不是更改它们。*@返回用于文本的底色*/发布你的代码。希望您已经应用了正确的TextView引用。尝试在真实设备中进行交叉检查。msgTextView.setLayerTypeView.LAYER_TYPE_软件,null;在设置模糊遮罩之前添加此选项修复了该问题。谢谢