android - 自定义的drawable能够转换成bitmap吗

浏览:20日期:2022-12-12

问题描述

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的么

相关文章: