Android BlurMaskFilter n'a pas d'effet dans la toile.drawOval tandis que le texte est flou

J'ai essayé de créer une vue personnalisée qui a des formes floues, en vertu de texte. Le problème est que le BlurMaskFilter n'a aucun effet sur la forme que je dessine sur la toile. Voici comment je suis initialisation de la Peinture des objets dans le constructeur:

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

Et je suis d'appeler les fonctions de ce genre dans onDraw():

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

Mais c'est ce que je vois.

Android BlurMaskFilter n'a pas d'effet dans la toile.drawOval tandis que le texte est flou

À l'aide de l'androïde 4,0 de sdk et des essais sur un 4.0.4 galaxy nexus (royaume-UNI). Je me demande si c'est un bug dans la version 4.0.4 comme je l'ai fait tester sur l'émulateur avec 4.0 et 4.0.3 et il n'flou parfaitement bien, à moins que je suis en train de faire quelque chose de complètement faux?

EDIT: Voici l'étendue Afficher le code pour le tester sur d'autres plates-formes.

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);
}
}
  • Je vois la même chose sur un Galaxy Nexus exécutant 4.0.4, seul le texte est flou, rien d'autre. Exécuter la même application de test sur mon pain d'épice Incroyable correctement brouille toutes les formes et le texte.
InformationsquelleAutor fasih.rana | 2012-07-01