我想從具有透明背景的PNG圖像創建位圖。當我在下面使用這種方法時,會使背景變黑。我試過用顏色透明的drawColor(),但它不起作用。也許我只是忽略了一些東西。所以,我的問題是:如何將透明度保存在位圖中?我將它保存爲PNG。如何從其他圖像創建位圖並保持透明背景?
private Bitmap createCircularCroppedBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final Paint paint = new Paint();
paint.setAntiAlias(true);
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
canvas.drawARGB(0, 0, 0, 0);
canvas.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2,
bitmap.getWidth()/2, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
我搞砸了,仍然無法讓它工作。但是,如果我使用可繪製資源的圖像創建位圖,則它工作得很好。但不是從apk之外的圖像,例如從設備的圖像庫中檢索的圖像。謝謝你的迴應,斯蒂恩。 – AndroidKen 2013-05-13 01:38:58
解決了一些問題後,我認爲問題來自畫廊的裁剪功能。在傳遞數據時它失去了透明度。 – AndroidKen 2013-05-24 20:04:08
@AndroidKen試試我的答案! – 2014-09-30 07:20:43