1

I'm trying to set an image from byte to a bitmap and set it to a imageView, but i'm getting a null pointer exception whenever i set it to a imageView, Sorry for a noob question i'm just new with the byte and bitmaps

Here's the code:

iv = (ImageView)findViewById(R.id.imageView1);
    fileObject.getDataInBackground(new GetDataCallback() {
                    public void done(byte[] data, ParseException e) {
                      if (e == null) {
                        // use data for something
                        Bitmap bmp=BitmapFactory.decodeByteArray(data,0,data.length);
                        Log.d("test", " "+bmp.toString());
                        iv.setImageBitmap(bmp); <----- here getting error
                      } else {
                        Log.d("test", "There was a problem downloading the data.");
                      }
                    }
                  });

iv is declared locally in the class. Thanks in advance for helping.

Here is my logcat as requested:

03-06 20:15:46.417: E/AndroidRuntime(388): FATAL EXCEPTION: main
03-06 20:15:46.417: E/AndroidRuntime(388): java.lang.NullPointerException
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.shop.browser.ItemInfoActivity$1$1.done(ItemInfoActivity.java:115)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.parse.ParseFile$2.done(ParseFile.java:396)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.parse.GetDataCallback.internalDone(GetDataCallback.java:21)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.parse.GetDataCallback.internalDone(GetDataCallback.java:1)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.parse.BackgroundTask.onPostExecute(BackgroundTask.java:50)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.parse.BackgroundTask.onPostExecute(BackgroundTask.java:1)
03-06 20:15:46.417: E/AndroidRuntime(388):  at android.os.AsyncTask.finish(AsyncTask.java:417)
03-06 20:15:46.417: E/AndroidRuntime(388):  at android.os.AsyncTask.access$300(AsyncTask.java:127)
03-06 20:15:46.417: E/AndroidRuntime(388):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
03-06 20:15:46.417: E/AndroidRuntime(388):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-06 20:15:46.417: E/AndroidRuntime(388):  at android.os.Looper.loop(Looper.java:123)
03-06 20:15:46.417: E/AndroidRuntime(388):  at android.app.ActivityThread.main(ActivityThread.java:4627)
03-06 20:15:46.417: E/AndroidRuntime(388):  at java.lang.reflect.Method.invokeNative(Native Method)
03-06 20:15:46.417: E/AndroidRuntime(388):  at java.lang.reflect.Method.invoke(Method.java:521)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-06 20:15:46.417: E/AndroidRuntime(388):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-06 20:15:46.417: E/AndroidRuntime(388):  at dalvik.system.NativeStart.main(Native Method)
5
  • Please provide your logcat Commented Mar 6, 2013 at 12:29
  • seems iv is null here. Please check whether u cast the rigth id.. provide logcat data as well Commented Mar 6, 2013 at 12:31
  • it's acceptable to call setImageBitmap with null argument so in your case iv is actually null. make sure that you have an ImageView with id R.id.imageView1 in your layout. Commented Mar 6, 2013 at 12:31
  • 2
    Guys can you post your comment as an answer below so i can accept it. I'm just stupid i set the wrong id Commented Mar 6, 2013 at 12:36
  • @user1708134 no need, post your answer and accept it Commented Mar 6, 2013 at 13:05

1 Answer 1

4
Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
  1. before use this above code check your byteArray size if they have then decode image like this way.
  2. And one thing also remember UI is not possible to change in thread background
 Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray , 0, byteArray .length);
 iv.setImageBitmap(bitmap );
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.