фатальная ошибка при вызове метода createScaledBitmap() в Android

Я пытался нарисовать изображение на холсте, но когда я звоню:

Bitmap android_guy = Bitmap.createScaledBitmap(BitmapFactory.decodeResource(context.getResources(), R.mipmap.ic_launcher), 50, 50, true);`

Я получаю следующую ошибку:

Вызвано: java.lang.NullPointerException: попытка вызвать виртуальный метод 'int android.graphics.Bitmap.getWidth()' для ссылки на нулевой объект в android.graphics.Bitmap.createScaledBitmap(Bitmap.java:702)`

Я не вызываю этот метод int android.graphics.Bitmap.getWidth().

Может ли кто-нибудь объяснить, почему он дает мне эту ошибку, или предложить мне другой способ преобразовать изображение в растровое изображение?


person Fahad    schedule 21.03.2018    source источник


Ответы (1)


Попробуйте это так

Bitmap.createScaledBitmap(BitmapFactory.decodeResource(context.getResources(),getResources().getDrawable(R.mipmap.ic_launcher),50,50, true);

если getResources().getDrawable(R.mipmap.ic_launcher) выдает ошибку, попробуйте context.getResources().getDrawable(R.mipmap.ic_launcher)

person Sergio Rodriguez    schedule 21.03.2018
comment
позвольте мне попробовать это - person Fahad; 21.03.2018
comment
@Fahad время компиляции или время выполнения? - person Michael; 22.03.2018
comment
попробуй это Bitmap bitmap = ((BitmapDrawable)getResources().getDrawable(R.mipmap.ic_launcher)).getBitmap(); Bitmap resizedBitmap = Bitmap.createScaledBitmap(bitmap, 50,50, true); - person Sergio Rodriguez; 22.03.2018