小编fas*_*ana的帖子

Android BlurMaskFilter在canvas.drawOval中没有效果,而文本模糊

我一直在尝试创建一个在文本下模糊形状的自定义视图.问题是BlurMaskFilter对我在画布上绘制的任何形状都没有影响.以下是我在构造函数中初始化Paint对象的方法:

paint = new Paint(0);
paint.setColor(0xffffffff);
paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL));

mShadowPaint = new Paint(0);
mShadowPaint.setColor(0xff333333);
mShadowPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL));
Run Code Online (Sandbox Code Playgroud)

我在onDraw()中调用这样的函数:

canvas.drawOval(mShadowBounds,mShadowPaint);
canvas.drawText("hello", x, y, paint);
Run Code Online (Sandbox Code Playgroud)

但这就是我所看到的.

椭圆形不模糊但文字模糊不清.

使用android 4.0 sdk并在4.0.4 galaxy nexus设备(英国)上进行测试.我想知道这是不是4.0.4中的一个错误,因为我在4.0和4.0.3模拟器上测试它并且它确实很好地模糊了它们,除非我做错了什么?

编辑:这是在其他平台上测试它的扩展View代码.

import android.content.Context;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;

public class BlurTestView extends View{

    private Paint paint;
    private Paint mShadowPaint;
    private int size = 100;
    private RectF mShadowBounds = new RectF();

    public BlurTestView(Context context) {
        this(context, null, 0);
    }

    public BlurTestView(Context context, AttributeSet attrs) { …
Run Code Online (Sandbox Code Playgroud)

android blur android-canvas android-4.0-ice-cream-sandwich

24
推荐指数
2
解决办法
2万
查看次数