Bitmap ne provenant pas d'anti-aliasing

J'ai un custom View qui attire toujours une Bitmap à une certaine rotation. J'ai remplacer le onDraw méthode, tourner le Canvas et dessiner l'image avec un anti-aliasing Paint.

public RotatedImageView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    someBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.placeholder);
}

@Override
protected void onDraw(Canvas canvas) {

    //Save and rotate canvas
    canvas.save();
    canvas.rotate(3F, getWidth() / 2, getHeight());

    //Draw the icon
    Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
    canvas.drawBitmap(someBitmap, 0, 0, p);
    canvas.drawRoundRect(new RectF(75, 50, 225, 200), 10, 10, p);

    //All done; restore canvas
    canvas.restore();
}

Cependant, je reçois toujours des bords irréguliers sur l'image Bitmap. Notez que le roudned au rectangle obtient joliment contours lissés. Aussi, quand je l'applique p.setFilterBitmap(true); cela fonctionne (la surface bitmap est filtré/lissé) correctement. Ai-je raté quelque chose?

Bitmap ne provenant pas d'anti-aliasing

Voici une minime projet Android avec exemple isolé d'un écran qui montre la Vue qui attire les non-anti-aliasing Bitmap, chargé à partir d'une ressource: https://bitbucket.org/erickok/antialiastest

Mise à JOUR: j'ai aussi essayé le suivant:

    Paint p = new Paint();
    p.setAntiAlias(true);
    p.setFilterBitmap(true);
    p.setDither(true);
    canvas.drawBitmap(someBitmap, 0, 0, p);

Mais cela n'aide pas que setFilterBitmap filtres de la surface; il n'a pas d'anti-alias les bords. Aussi, setAntiAlias fait la même chose que directement le paramétrage de l'indicateur dans le Paint constructeur. En cas de doute, s'il vous plaît essayer mon test minimal projet. Merci beaucoup pour toute aide!

OriginalL'auteur Eric Kok | 2013-01-17