Как закрепить и заполнить холст с помощью альфа-маски

У меня есть некоторые .png значки, которые являются альфа-масками. Мне нужно отобразить их как графическое изображение с помощью Android SDK.

На iPhone я использую следующее, чтобы получить этот результат, преобразуя альфа-маску «image» в образ «imageMasked», используя черный как заполнение:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(NULL, thumbWidth, thumbHeight, 8, 4*thumbWidth, colorSpace, kCGImageAlphaPremultipliedFirst); CGRect frame = CGRectMake(0,0,thumbWidth,thumbHeight); CGContextClipToMask(context, frame, [image CGImage]); CGContextFillRect(context, frame); CGImageRef imageMasked = CGBitmapContextCreateImage(context); CGContextRelease(context); 

Как это сделать в Android SDK?

Я начал писать следующее:

 Drawable image = myPngImage; final int width = image.getMinimumWidth(); final int height = image.getMinimumHeight(); Bitmap imageMasked = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(iconMasked); image.draw(canvas); ??? 

Я не нахожу, как сделать обрезку на imageMasked с использованием изображения.

Решено:

 Drawable icon = An_Icon_That_Is_An_Alpha_Mask; int width = icon.getIntrinsicWidth(); int height = icon.getIntrinsicHeight(); Bitmap bm = Bitmap.createBitmap(width, height, Bitmap.Config.ALPHA_8); Canvas canvas = new Canvas(bm); icon.setBounds(new Rect(0,0,width,height)); icon.draw(canvas); 
Intereting Posts