Error al leer desde png.class

Cuando intento cargar una imagen de una URL, usando el código siguiente (la trayectoria de la imagen real quitada):

Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL("http://some-path/img.png").getContent()); 

Recibo el error siguiente:

 Error reading from ./org/apache/harmony/awt/www/content/image/png.class 

¿Alguna idea sobre lo que podría estar causando el error?

Estoy usando un GoogleDVD AVD, si eso importa.

4 Solutions collect form web for “Error al leer desde png.class”

Espero que esto sea suficiente.

Si está utilizando php;

 echo base64_encode($imgBinary); // You can get the imagebinary by using the fread and fopen methods provided by php 

En android

 HttpClient client = new DefaultHttpClient(); HttpResponse response = client.execute(new HttpGet(url)); HttpEntity entity = httpResponse.getEntity(); if(entity != null) { InputStream is = entity.getContent(); byte[] decodedString = Base64.decode(convertStreamToString(is), Base64.DEFAULT); Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); } 

Esto probablemente no es la manera más eficiente, pero debe hacer el trabajo. A partir de ahí puedes construir 🙂

Puede comprimir el mapa de bits en un PNG después, y seguro. ejemplo:

 decodedByte.compress(compressformat, quality, stream);//suported compress formats can be used like so: Bitmap.CompressFormat.PNG etc 

ConvertStreamToString son métodos fácilmente encontrados. Simplemente haga una búsqueda rápida en Google, o escriba la suya propia.

Pruebe este método: su trabajo para mí Esto devuelve bitmap

 bmp=getBitmapFromURL(ur url here); 

Escribe este método

 public static Bitmap getBitmapFromURL(String src) { try { URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url .openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap mybitmap = BitmapFactory.decodeStream(input); return mybitmap; } catch (Exception ex) { return null; } 

Por lo que he experimentado el escenario como el suyo encontré que el flujo de entrada para una imagen no se puede obtener por métodos simples de obtener corriente tratar de actualizar las siguientes cosas en su código y, a continuación, comprobar los resultados. Estoy seguro de que obtendrá lo que quiere.

 Bitmap bitmap = BitmapFactory.decodeStream(getBitmapStream("http://some-path/img.png")); 

Y aquí está el método que se puede declarar dentro de clase para ser llamado directamente en su método de flujo de decodificación

 public InputStream getBitmapStream (String url) { HttpGet httpRequest = null; InputStream instream=null; try { URL bitmapUrl=new URL(url); httpRequest = new HttpGet(bitmapUrl.toURI()); HttpClient httpclient = new DefaultHttpClient(); HttpResponse response = (HttpResponse) httpclient.execute (httpRequest); HttpEntity entity = response.getEntity(); BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity (entity); instream = bufHttpEntity.getContent(); } catch (URISyntaxException e) { e.printStackTrace(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return instream; } 

Mi conjetura sería

 URL url = new URL("some url path"); URLConnection urlConnection = url.openConnection(); BitmapDrawable image = new BitmapDrawable(urlConnection.getInputStream()); 
  • ¿Cómo puedo solucionar problemas de visibilidad de html.fromHtml link focus (en ICS y Honeycomb)?
  • Se necesita la guía compleja de diseño de la interfaz de usuario de Android (fragmentos)
  • Google TV - está diseñando para la eficiencia tan importante como lo es con los teléfonos / tabletas?
  • ¿Necesita Google TV cosas como WakeLocks?
  • Cómo puede acceder a la memoria externa en Google TV
  • Apertura de vídeo RTSP en VideoView
  • Google TV SDK para Android
  • Creación de Google TV AVD en ventanas que no detectan x86 Imagen del sistema
  • Android Studio / Win8 / ERR_NAME_NOT_RESOLVED
  • Cómo configurar el control focusable de Android ActionBar mediante programación
  • Screensaver muestra al cambiar el tamaño de una ventana con WindowManager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.