У меня есть класс Main
с методом has onCreate ()
. в этом методе я сделал объект класса MapFile. и вызвал его методы readFile ()
и readIndex ()
. в методе readIndex ()
я вызываю другой класс с именем MapTile
, где я читаю плитки изображений из моего двоичного файла и там мне нужно отобразить свое изображение.
Вопрос в том, как можно Я отображаю изображение, не помещая свой код в метод onCreate (Bundle saveInstanceStare)
? Я пытаюсь таким образом, но в первой строке это дает мне NullPointerException
.
ImageView image = (ImageView) findViewById(android.R.id.icon);
Bitmap bMap = BitmapFactory.decodeByteArray(imageTile, 0, imageTile.length);
image.setImageBitmap(bMap);
Я думаю, ваша проблема не в byteArray, а в findViewById
. Как вы говорите, NPE стоит на первой строчке. В отношении этого метода существуют правила, у вас есть два варианта его вызова:
Либо вы используете его для запроса представления, которое у вас уже есть в макете, который вы вызвали в setContentView
, либо вы используете его для представления, содержащегося в макет, который вы накачали вручную с помощью надувного устройства макета
. Если вы попытаетесь использовать его в своей деятельности для вызова представления из любого другого макета, кроме того, который вы не накачивали сами, в setContentView
, он вернет нулевой.