I used the code from here to blur some text:
val radius = msgText.getTextSize() / 3
val mTextFilter = BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL)
msgTextView.getPaint().setMaskFilter(mTextFilter)
...at some point I wanted to undo the blur so I tried:
msgTextView.getPaint().setMaskFilter(null)
but that does not clear the blur from the text despite its description:
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;
}
...
}
So I am confused. Any idea?
Your code is perfect just you need to add these lines as per your need!
To set Blur effect
val radius = msgText.getTextSize() / 3
val mTextFilter = BlurMaskFilter(radius, BlurMaskFilter.Blur.NORMAL)
msgTextView.getPaint().setMaskFilter(mTextFilter)
To remove Blur effect
msgTextView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
// Clear any previous
MaskFilter mTextView.getPaint().setMaskFilter(null);
To apply inner Blur
applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.INNER);
To apply outer Blur
applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.OUTER);
To apply normal Blur
applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.NORMAL);
To apply solid Blur
applyBlurMaskFilter(mTextView, BlurMaskFilter.Blur.SOLID);
here applyBlurMaskFilter()
is user defined method.