android blurmaskfilter 模糊,当文本模糊时,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));

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

canvas.drawOval(mShadowBounds,mShadowPaint);

canvas.drawText("hello", x, y, paint);

但这是我所看到的。

使用android 4.0 sdk并在4.0.4 galaxy nexus设备(UK)上进行测试。我想知道这是否是4.0.4中的错误,因为我在4.0和4.0.3的模拟器上进行了测试,并且对它们的模糊效果非常好,除非我做错了什么?

编辑:这是在其他平台上进行测试的扩展视图代码。

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

this(context, attrs, 0);

}

public BlurTestView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

paint = new Paint(0);

paint.setColor(0xff333333);

paint.setTextSize(size);

paint.setMaskFilter(new BlurMaskFilter(8, BlurMaskFilter.Blur.NORMAL));

mShadowPaint = new Paint(0);

mShadowPaint.setColor(0xff333333);

mShadowPaint.setMaskFilter(new BlurMaskFilter(10, BlurMaskFilter.Blur.NORMAL));

mShadowBounds.top = size;

mShadowBounds.bottom = mShadowBounds.top+(size /2);

mShadowBounds.left = 0;

mShadowBounds.right = (int)paint.measureText("hello");

}

@Override

public void onDraw(Canvas canvas)

{

canvas.drawOval(mShadowBounds,mShadowPaint);

canvas.drawText("hello", 0, size, paint);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值