отображать изображение из byteArray - PullRequest
22 голосов
/ 19 августа 2010

У меня есть класс 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);

Ответы [ 2 ]

34 голосов
/ 03 декабря 2011

добавление байтового массива в просмотр изображений 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);
6 голосов
/ 19 августа 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...