View images in Android from a URL

I download the image from the URL, but after the download is complete, the image does not change. I entered the code below, did someone experience the same thing?

Java file

 public class MyImgActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView imgView =(ImageView)findViewById(R.id.imageView1); Drawable drawable = LoadImageFromWebOperations("http://www.gophoto.it/view.php?i=http://1.bp.blogspot.com/-2LTvCCufBKc/T3L3KgcTj2I/AAAAAAAABbQ/Ki60e1LU9sE/s1600/Sachin%2BTendulkar.png"); imgView.setImageDrawable(drawable); } private Drawable LoadImageFromWebOperations(String 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; } } } 

XML file

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_height="match_parent" android:layout_width="match_parent"></ImageView> </LinearLayout> 

Manifest file

 <uses-permission android:name="android.permission.INTERNET"/> 
+6
source share
4 answers

Please use the code below to download and display the image in the image view.

 public class image extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bitmap bitmap = DownloadImage("http://www.gophoto.it/view.php?i=http://1.bp.blogspot.com/-2LTvCCufBKc/T3L3KgcTj2I/AAAAAAAABbQ/Ki60e1LU9sE/s1600/Sachin%2BTendulkar.png"); ImageView img = (ImageView) findViewById(R.id.img); img.setImageBitmap(bitmap); } private InputStream OpenHttpConnection(String urlString) throws IOException { InputStream in = null; int response = -1; URL url = new URL(urlString); URLConnection conn = url.openConnection(); if (!(conn instanceof HttpURLConnection)) throw new IOException("Not an HTTP connection"); try { HttpURLConnection httpConn = (HttpURLConnection) conn; httpConn.setAllowUserInteraction(false); httpConn.setInstanceFollowRedirects(true); httpConn.setRequestMethod("GET"); httpConn.connect(); response = httpConn.getResponseCode(); if (response == HttpURLConnection.HTTP_OK) { in = httpConn.getInputStream(); } } catch (Exception ex) { throw new IOException("Error connecting"); } return in; } private Bitmap DownloadImage(String URL) { Bitmap bitmap = null; InputStream in = null; try { in = OpenHttpConnection(URL); bitmap = BitmapFactory.decodeStream(in); in.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } return bitmap; } } 
+17
source

The following code works with the following URL, but it does not work with your url.the problem with your image size. Try with a different url, it will work.

 public class MyImgActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageView imgView =(ImageView)findViewById(R.id.imageView1); URL url = null; Bitmap bmp = null; try { url = new URL("http://www.seobook.com/images/smallfish.jpg"); bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); } catch (MalformedURLException e) { }catch (IOException e) { } imgView.setImageBitmap(bmp); } } 
+3
source
  try { URL murl = new URL(url) URLConnection ucon = murl.openConnection(); InputStream is = ucon.getInputStream(); Drawable d = Drawable.createFromStream(is, "src name"); return d; }catch (Exception e) { System.out.println("Exc="+e); return null; } 

use this goat inside your upload method, and if the connection speed is slow, use a thread to upload and a hanlder to send the image ... as explained by @Hiren

+1
source

try under the code,

just change your url

URL

Oncreate

 new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub drawable = LoadImageFromWebOperations("http://1.bp.blogspot.com/-2LTvCCufBKc/T3L3KgcTj2I/AAAAAAAABbQ/Ki60e1LU9sE/s1600/Sachin%2BTendulkar.png"); handler.sendEmptyMessage(0); } }).start(); 

set image after loading image using handler

 Handler handler = new Handler(){ @Override public void handleMessage(android.os.Message msg) { imgView.setImageDrawable(drawable); Log.i("System out","after set the image..."); } }; 

Hope to help you ...

0
source

Source: https://habr.com/ru/post/924035/


All Articles