Подтвердить что ты не робот

Отображать изображение из byteArray

У меня есть класс Main с onCreate(). в этом методе я создал объект класса MapFile и назвал его методы readFile() и readIndex(). в методе readIndex() я вызываю другой класс с именем MapTile, где я читаю фрагменты изображений из моего двоичного файла, и там я должен отображать свое изображение.

Вопрос в том, как я могу отобразить изображение без ввода кода в метод onCreate(Bundle savedInstanceStare)? Я пытаюсь это сделать, но на первой строке он дает мне NullPointerException.

ImageView image = (ImageView) findViewById(android.R.id.icon);           
Bitmap bMap = BitmapFactory.decodeByteArray(imageTile, 0, imageTile.length);
image.setImageBitmap(bMap);
4b9b3361

Ответ 1

Я думаю, что ваша проблема не в байтеArray, а в findViewById. Как вы говорите, NPE находится на первой линии. Существуют правила вокруг этого метода, у вас есть два варианта его вызова:

Либо вы используете его для запроса представления, которое у вас уже есть в макете, который вы вызывали в setContentView
Или вы используете его в представлении, содержащемся в макете, которую вы раздували вручную с помощью надувного макета

Если вы попытаетесь использовать его в своей деятельности, чтобы вызвать View из любого другого макета, чем тот, который находится в setContentView, который вы еще не завыли, он вернет null.

Ответ 2

добавление байтового массива в представление изображения Android:

        //byte[] chartData 
        ImageView imgViewer = (ImageView) findViewById(R.id.chart_image);
        Bitmap bm = BitmapFactory.decodeByteArray(chartData, 0, chartData.length);
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

        imgViewer.setMinimumHeight(dm.heightPixels);
        imgViewer.setMinimumWidth(dm.widthPixels);
        imgViewer.setImageBitmap(bm);