servidor - obtener imagen almacenada en mysql desde android
Cómo mostrar la imagen desde la URL en Android (9)
Quiero mostrar la imagen en la pantalla. La imagen debe provenir de la URL y no dibujable.
El código está aquí:
<ImageView android:id="@+id/ImageView01" android:src = "http://l.yimg.com/a/i/us/we/52/21.gif"
android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
pero da error en tiempo de compilación.
¿Cómo visualizo la imagen desde la URL en Android?
Escriba el código usando ASyncTask
para el manejo de http.
Bitmap b;
ImageView img;
......
try
{
URL url = new URL("http://10.119.120.10:80/img.jpg");
InputStream is = new BufferedInputStream(url.openStream());
b = BitmapFactory.decodeStream(is);
} catch(Exception e){}
......
img.setImageBitmap(b);
Intenté que este código funcionara para mí, obtenga la imagen directamente de url
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}
usar el método insideCreate ()
nuevo DownloadImageTask ((ImageView) findViewById (R.id.image)) .execute (" http://scoopak.com/wp-content/uploads/2013/06/free-hd-natural-wallpapers-download-for-pc.jpg ");
Por ejemplo simple,
http://www.helloandroid.com/tutorials/how-download-fileimage-url-your-device
Deberá usar httpClient y descargar la imagen (almacenarla en caché si es necesario),
solución ofrecida para mostrar imágenes en la vista de lista, esencialmente el mismo código (verifique el código donde la vista de la imagen se establece desde url) para visualizar.
Puede mostrar directamente la imagen desde la web sin descargarla. Por favor, compruebe la función a continuación. Mostrará las imágenes de la web en su vista de imagen.
public static Drawable LoadImageFromWebOperations(String url) {
try {
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
} catch (Exception e) {
return null;
}
}
luego configura la imagen en la vista de imagen usando el código en tu actividad.
Puedes probar esto que encuentro en otra pregunta.
Android, crea una imagen en una URL igual a la imagen de ImageView
try {
ImageView i = (ImageView)findViewById(R.id.image);
Bitmap bitmap = BitmapFactory.decodeStream((InputStream)new URL(imageUrl).getContent());
i.setImageBitmap(bitmap);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Reintenté una imagen de una URL y la guardé en mi tarjeta SD usando el siguiente código:
public String Downloadfromurl(String Url)
{
String filepath=null;
try {
URL url = new URL(Url);
//create the new connection
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
//set up some things on the connection
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
//and connect!
urlConnection.connect();
//set the path where we want to save the file
//in this case, going to save it on the root directory of the
//sd card.
folder = new File(Environment.getExternalStorageDirectory().toString()+"/img");
folder.mkdirs();
//create a new file, specifying the path, and the filename
//which we want to save the file as.
String filename= "page"+no+".PNG";
file = new File(folder,filename);
if(file.createNewFile())
{
file.createNewFile();
}
//this will be used to write the downloaded data into the file we created
FileOutputStream fileOutput = new FileOutputStream(file);
//this will be used in reading the data from the internet
InputStream inputStream = urlConnection.getInputStream();
//this is the total size of the file
int totalSize = urlConnection.getContentLength();
//variable to store total downloaded bytes
int downloadedSize = 0;
//create a buffer...
byte[] buffer = new byte[1024];
int bufferLength = 0; //used to store a temporary size of the buffer
//now, read through the input buffer and write the contents to the file
while ( (bufferLength = inputStream.read(buffer)) > 0 ) {
//add the data in the buffer to the file in the file output stream (the file on the sd card
fileOutput.write(buffer, 0, bufferLength);
//add up the size so we know how much is downloaded
downloadedSize += bufferLength;
//this is where you would do something to report the prgress, like this maybe
Log.i("Progress:","downloadedSize:"+downloadedSize+"totalSize:"+ totalSize) ;
}
//close the output stream when done
fileOutput.close();
if(downloadedSize==totalSize)
filepath=file.getPath();
//catch some possible errors...
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
filepath=null;
e.printStackTrace();
}
Log.i("filepath:"," "+filepath) ;
return filepath;
}
Tengo el mismo problema. Pruebo este código y funciona bien. Este código Get Image from URL y put in - "bmpImage"
URL url = new URL("http://your URL");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(60000 /* milliseconds */);
conn.setConnectTimeout(65000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
int response = conn.getResponseCode();
//Log.d(TAG, "The response is: " + response);
is = conn.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(is);
Bitmap bmpImage = BitmapFactory.decodeStream(bufferedInputStream);
InputStream URLcontent = (InputStream) new URL(url).getContent();
Drawable image = Drawable.createFromStream(URLcontent, "your source link");
esto me ha funcionado