2013-02-05 8 views
0

Je suis tring pour obtenir la largeur et la hauteur de l'image dans android et charge en conséquence acheter mon code ci-dessous fonctionne très bien dans 2.3.3 mais quand je tester dans la version supérieure (4.0) son hauteur et largeur donnent NullPointerException ... Ci-dessous mon code ...Drawable hauteur et la largeur ne fonctionne pas dans Android ICS

  Drawable drawable = null; 
      drawable = LoadImageFromWebOperations(logo_url.replace(" ", "%20")); 
      System.out.println("Width" + drawable.getMinimumWidth()); 
      System.out.println("Height" + drawable.getMinimumHeight()); 
      int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, drawable.getMinimumWidth(), mCtx.getResources().getDisplayMetrics()); 
      int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_PX, drawable.getMinimumHeight(), mCtx.getResources().getDisplayMetrics()); 
      client_logo.setMinimumHeight(height); 
      client_logo.setMinimumWidth(width); 
      client_logo.setImageDrawable(drawable); 


      public Drawable LoadImageFromWebOperations(String url){ 
System.out.println(url); 

    try{ 
     InputStream is = (InputStream) new URL(url).getContent(); 
     Drawable d = Drawable.createFromStream(is, "src name"); 
     return (d); 
    }catch (Exception e) { 
     //System.out.println("Exc="+e); 
     return null; 
    } 
} 

Répondre

0

à partir de l'API 11, si vous exécutez ce code sur le thread d'interface utilisateur, l'accès au réseau lancera une NetworkOnMainThreadException. Vous ne publiez pas votre sortie logcat (ce qui serait très utile), mais je suppose que c'est ce qui se passe. En conséquence, renverra null et vous obtiendrez un NPE lorsque vous essaierez d'accéder aux propriétés du drawable.

Vous devez exécuter ce code dans un thread de travail. Voir l'article Keeping Your App Responsive.

+0

Travaillé Great yar ... Chargé mes opérations web en arrière-plan lui-même .... – user1051599

Questions connexes