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.

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()); 
  • Implementar y diseñar aplicaciones de Android para TV
  • Google Tv Emulator AVD Imagen del sistema
  • Identificador de recursos de Android para teléfonos de alta resolución y Google TV
  • Android TV no está iniciando LAUNCH_LEANBACK Actividad
  • Desarrollo de set top de Android
  • Android SDK 14 - No se puede crear un dispositivo GTV
  • Cómo utilizar D-pad navegar cambiar entre la fila de listview y sus decendants (soporte de Google-TV)
  • Google TV SDK para Android
  • ¿Cómo puedo solucionar problemas de visibilidad de html.fromHtml link focus (en ICS y Honeycomb)?
  • MediaPlayer para Android / VideoView con subtítulos (SRT)
  • Cómo puede acceder a la memoria externa en Google TV
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.