Drawable Loses Color Filter After Converting Into Bitmap
I am trying to add a color filer in a drawable and then convert it in Bitmap. The problem is when convert the drawable into bitmap it loses it's color filter.I used drawable in ima
Solution 1:
Use a canvas to blit the Drawable back onto a bitmap:
Canvas canvas;
Drawable drawable = <yourDrawable created from wherever>;
Bitmap bmp = <your Bitmap which is the same width/height as the drawable>
// blit the drawable onto the bitmap using a Canvas
canvas = new Canvas(bmp);
drawable.draw(canvas);
http://developer.android.com/guide/topics/graphics/2d-graphics.html
Solution 2:
I had the same problem and I figured it out finally!
We need to do following thing to get the bitmap with color filter applied on it.
image_view.setDrawingCacheEnabled(true);
Bitmapbitmap= Bitmap.createBitmap(image_view.getDrawingCache());
Solution 3:
I've faced the same issue and finally found a solution. Drawable can have multiple states thus you might be drawing wrong state.
You should switch it to proper mode before drawing:
Drawabledrawable= icon.loadDrawable(getContext());
if (drawable == null) {
return;
}
drawable.setState(newint[] {android.R.attr.state_enabled});
Bitmapbitmap= Bitmap.createBitmap(drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvascanvas=newCanvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Post a Comment for "Drawable Loses Color Filter After Converting Into Bitmap"