У меня проблема со строкой bmD.getBitmap()
, возвращающей ноль.
Я зарегистрировал это, и это результат.
E/first: first bmp: android.graphics.drawable.BitmapDrawable@2d55bad null
Вот мой код:
public static Bitmap drawableToBitmap(Drawable drawable) {
Bitmap bm = null;
if (drawable instanceof BitmapDrawable) {
BitmapDrawable bmD = (BitmapDrawable) drawable;
bmD.invalidateSelf();
Log.e("first","first" + " bmp: " + bmD +" " + bmD.getBitmap());
if (bmD.getBitmap() != null) {
bm = bmD.getBitmap();
Log.e("second","second");
}
} else if (drawable instanceof VectorDrawable) {
bm = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bm);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
Log.e("third","third");
}
return bm;
}