2015-08-28 15 views
7

Sto cercando di ottenere l'immagine dalla scheda SD in bitmap per la visualizzazione in Image-view.Dopo l'esecuzione l'applicazione visualizza le prime due o tre immagini ma quando l'applicazione Elenco a scorrimento si arresta e ottiene l'eccezione di NullPointerException: java.lang.NullPointerException: Tentativo di richiamare il metodo virtuale 'int android.graphics.Bitmap.getWidth()' su un valore null riferimento a un oggetto a com.example.tazeen.classnkk.Activity1 $ MyListAdapter.getView (Activity1.java:357)Android: NullPointerException: tentativo di richiamare il metodo virtuale 'int android.graphics.Bitmap.getWidth()' su un oggetto nullo di riferimento

   if(objElement.endsWith(mp3_Pattern)) 
       { 
        Log.e("Mp3 ", " ends with "); 

        { 
         int scalFactor = fixHeight/h ; 
         newWidth = (int)(w * scalFactor); 
         Log.e("scalFactor "," = " + scalFactor); 
         Log.e("newWidth "," = " + newWidth); 
         Log.e("resizing... ","in if condition"); 
         new_Height = fixHeight ; 
        } 
        else 
        { 
         newWidth = w; 
         new_Height = h; 
        } 


        Uri uri = Uri.fromFile(new File(objElement)); 
        Picasso.with(getContext()).load(uri).resize(newWidth, new_Height).placeholder(R.drawable.img_placeholder).into(imageView , new com.squareup.picasso.Callback() { 
         @Override 
         public void onSuccess() { 
          if (pBar != null) { 
           pBar.setVisibility(View.GONE); 
          } 
         } 
         @Override 
         public void onError() { 

         } 
        }); 
       } 

       holder.linearLayout.addView(imageView); 
       holder.linearLayout.addView(pBar); 

Ecco informat il login ione

08-28 14:22:14.077 2947-2947/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.example.tazeen.classnkk, PID: 2947 
    java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference 
      at com.example.tazeen.classnkk.AllPosts_Page$MyListAdapter.getView(AllPosts_Page.java:357) 
      at android.widget.AbsListView.obtainView(AbsListView.java:2347) 
      at android.widget.ListView.makeAndAddView(ListView.java:1864) 
      at android.widget.ListView.fillDown(ListView.java:698) 
      at android.widget.ListView.fillGap(ListView.java:662) 
      at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4991) 
      at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:3418) 
      at android.widget.AbsListView.onTouchMove(AbsListView.java:3801) 
      at android.widget.AbsListView.onTouchEvent(AbsListView.java:3632) 
      at android.view.View.dispatchTouchEvent(View.java:8471) 
      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2399) 
      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2092) 
      at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2405) 
      at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2106) 

risposta

2

provare questo. all'interno del vostro if (objElement.endsWith (png_Pattern))

BitmapFactory.Options options = new BitmapFactory.Options(); 
    options.inPreferredConfig = Bitmap.Config.ARGB_8888; 
    Bitmap bitmap = BitmapFactory.decodeFile(objElement, options); 
+0

Ma nel mio oggetto String: sta già ottenendo il percorso della scheda sd come objElement: = /mnt/sdcard/SDImages/95_20150824112324025.png. – androidTag

+0

Ho provato sopra il codice ma bitmapSize è null perché – androidTag

+0

ho aggiornato la risposta anche consultare http://stackoverflow.com/a/8710690/1552136. nel caso non risolva questo fammi sapere che proverò questo. – harshitpthk

1

Provare a sostituire Bitmap bitmapSize = BitmapFactory.decodeFile(objElement); con

File file = new File(objElement); 
    if (file.exists()) { 
    Bitmap bitmapSize = BitmapFactory.decodeFile(file.getAbsolutePath()); 
    } 
+0

E perchè si usa 'new File (objElement) .getAbsolutePath()'? Perché non 'file.getAbsolutePath()'? – CoolMind

0

Sembra che avete le immagini che non potevano essere decodificati.

Da documentazione:

/** 
* Decode a file path into a bitmap. If the specified file name is null, 
* or cannot be decoded into a bitmap, the function returns null. 
* 
* @param pathName complete path name for the file to be decoded. 
* @return the resulting decoded bitmap, or null if it could not be decoded. 
*/ 
public static Bitmap decodeFile(String pathName) { 
    return decodeFile(pathName, null); 
} 
0

So po 'tardi per questa risposta. tuttavia oggi stavo affrontando lo stesso problema. L'impostazione dell'immagine tramite bitmap nel picasso non ha risolto il problema. Ho provato quello sotto.

Picasso.with(holder.mRootView.getContext()).load(new File(trackingNumbers.get(position).getImageUrl())).error(R.drawable.no_image_place_holder).noFade().placeholder(R.drawable.no_image_place_holder).into(circularImageView); 

Thank You

Problemi correlati

 Problemi correlati