Android: Konvertieren zu Graustufen mit Transparenz - Android, Bild, Graustufen

Ich versuche, ein Bild, das ich von einem Restanruf erhalte, in eine Graustufe zu konvertieren, aber ich muss die Transparenz beibehalten, weil das Bild eine Überlagerung auf einer Karte ist. Ich habe versucht:

Bitmap bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
Canvas c = new Canvas(bmpGrayscale);
Paint paint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm);
paint.setColorFilter(f);
c.drawBitmap(bmpOriginal, 0, 0, paint);

Aber es bewahrt nicht die Transparenz ... also wenn einer von euch eine Idee hat, werde ich es gerne testen.

Vielen Dank !

Antworten:

3 für die Antwort № 1

Ihre Bitmap.Config ist RGB_565, die kein Alpha hat, was die Transparenzschicht ist. Versuchen Sie ARGB_8888.