问题描述
1.这是自定义的drawable,怎样转换成bitmap?
public class TextDrawable extends Drawable { private final String text; private final Paint paint; public TextDrawable(String text) {this.text = text;this.paint = new Paint();paint.setColor(Color.WHITE);paint.setTextSize(22f);paint.setAntiAlias(true);paint.setFakeBoldText(true);paint.setShadowLayer(6f, 0, 0, Color.BLACK);paint.setStyle(Paint.Style.FILL);paint.setTextAlign(Paint.Align.LEFT); } @Override public void draw(Canvas canvas) {canvas.drawText(text, 0, 0, paint); } @Override public void setAlpha(int alpha) {paint.setAlpha(alpha); } @Override public void setColorFilter(ColorFilter cf) {paint.setColorFilter(cf); } @Override public int getOpacity() {return PixelFormat.TRANSLUCENT; }}
问题解答
回答1:public static Bitmap drawableToBitmap (Drawable drawable) { Bitmap bitmap = null; if (drawable instanceof BitmapDrawable) {BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;if(bitmapDrawable.getBitmap() != null) { return bitmapDrawable.getBitmap();} } if(drawable.getIntrinsicWidth() <= 0 || drawable.getIntrinsicHeight() <= 0) {bitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888); // Single color bitmap will be created of 1x1 pixel } else {bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); } Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight()); drawable.draw(canvas); return bitmap;}
http://stackoverflow.com/questions/3035692/how-to-convert-a-drawable-to-a-bitmap
回答2:可以得,网上不是大把drawable转bitmap的么