2017-03-09 3 views
-2
erstellt

Also, ich habe diese App, die mit einem WebService verbunden ist und ich bereits Daten von dort abrufen, jetzt möchte ich einen Bildlink abrufen und dafür sorgen, dass das ImageView das Bild durch die Verknüpfung. Ist das überhaupt möglich? Jede mögliche Hilfe schätzen: DWie man ein Bild von webService, Android

 @Override 
    protected Void doInBackground(Void... params) { 
     HttpHandler sh = new HttpHandler(); 

     String jsonStr = sh.makeServiceCall(url); 
     Log.e(TAG, "Response from URL: " + jsonStr); 

     if (jsonStr != null) { 
      try { 

       JSONArray array = new JSONArray(jsonStr); 
       for (int i = 0; i < array.length(); i++) { 

        JSONObject jsonObject = array.getJSONObject(i); 

        JSONArray paises = jsonObject.optJSONArray("paises"); 

        if (paises != null) { 
         for (int j = 0; j < paises.length(); j++) { 
          JSONObject jsonObject1 = paises.getJSONObject(j); 
          System.out.println(jsonObject1.optString("Designacao")); 
          String K_PAIS = jsonObject1.getString("K_PAIS"); 
          String Designacao = jsonObject1.getString("Designacao"); 
          String URL_IMAGE_SMALL = jsonObject1.getString("URL_IMAGE_SMALL"); 
          String URL_IMAGEM = "http://something.something.pt" + URL_IMAGE_SMALL; 

          new DownloadImage(imageView6).execute(URL_IMAGEM); 

          HashMap<String, String> pais = new HashMap<>(); 

          pais.put("K_PAIS", K_PAIS); 
          pais.put("Designacao", Designacao); 
          pais.put("URL_IMAGE_SMALL", URL_IMAGE_SMALL); 
          pais.put("URL_IMAGEM", URL_IMAGEM); 
          listaPaises.add(pais); 


         } 
        } 
        System.out.println(jsonObject.optString("Designacao")); 
       } 



      } catch (final JSONException e) { 
       Log.e(TAG, "Json parsing error: " + e.getMessage()); 
       runOnUiThread(new Runnable() { 
        @Override 
        public void run() { 
         Toast.makeText(getApplicationContext(), "Json parsin error: " + e.getMessage(), Toast.LENGTH_LONG).show(); 
        } 
       }); 
      } 
     } else { 
      Log.e(TAG, "Couldn't get json from server."); 
      runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        Toast.makeText(getApplicationContext(), "Couldn't get json from server. Check LogCat for possible errpr!", Toast.LENGTH_LONG).show(); 
       } 
      }); 
     } 
     return null; 



    } 
{...} 
public class DownloadImage extends AsyncTask<String, Void, Bitmap> { 
    ImageView bmImage; 

    public DownloadImage(ImageView bmImage) { 
     this.bmImage = (ImageView) 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.d("Error", e.getStackTrace().toString()); 

     } 
     return mIcon11; 
    } 

    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 
    } 
} 
+4

Mögliche Duplikat von [Wie Bild von URL auf Android anzuzeigen] (http://stackoverflow.com/questions/6407324/how-to-display-image- from-url-on-android) – H4SN

Antwort

0

Sie ein Dritter Bibliothek Beispiel Glide Bibliothek

diese Bibliothek, die Sie und auf ImageView von url Anzeigebild holen helfen verwenden können.

Beispiel:

Glide.with(context).load(image_url).into(your_image_view); 

hier ist Link für die Bibliothek: https://github.com/bumptech/glide

1

Sie können Picasso, ein wunderbares Bild Bibliothek verwenden.

Beispiel:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); 

In Abhängigkeit über Gradle:

compile 'com.squareup.picasso:picasso:2.5.2' 
0

Sie haben Ihre Image in Ihrem XML zu setzen, wie Sie es normalerweise tun. Dann können Sie eine Bibliothek von Drittanbietern wie Picasso oder Glide verwenden, die das Bild von der URL laden und es in Ihrer Aktivität in Ihr ImageView einfügen.

0

In Ihrer App build.gradle hinzufügen

compile 'com.github.bumptech.glide:glide:3.7.0' 

Verwendung dieses Codebild von url

Glide.with(getApplicationContext()).load("image_url").into(ImageView); 
0

laden versuchen Sie dies, wenn Sie nicht wollen, Dritte-Bibliothek verwenden

new DownloadImage(imamgeview).execute(url); 

erstellen Sie eine Async-Aufgabe

public class DownloadImage extends AsyncTask<String, Void, Bitmap> { 
    CircleImageView bmImage; 

    public DownloadImage(ImageView bmImage) { 
     this.bmImage = (CircleImageView) 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.d("Error", e.getStackTrace().toString()); 

     } 
     return mIcon11; 
    } 

    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 
    } 
} 

ich hoffe, dass Sie es in Ihrem Fall

+0

Also nur um zu klären, in "new DownloadImage (imamgeview) .execute (url);" Die "URL" ist die Variable, in der die Verknüpfung gespeichert wird, oder? – alb

+0

ja du hast recht .. –

+0

seine Arbeit oder nicht in Ihrem Fall ..........? –

0

Schritt 1 funktioniert: erstellen Klasse namens download

public class DownloadImage extends AsyncTask<String, Void, Bitmap> { 
    CircleImageView bmImage; 

    public DownloadImage(ImageView bmImage) { 
     this.bmImage = (CircleImageView) 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.d("Error", e.getStackTrace().toString()); 

     } 
     return mIcon11; 
    } 

    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 
    } 
} 

Schritt 2: ausführen AsyncTask

new DownloadImage(imgUserProfile).execute(userProfileUrl); 

** Json URL wie folgt aus: ** https://graph.facebook.com/1220130444748799/picture?height=400&width=400&migration_overrides=%7Boctober_2012%3Atrue%7D

+0

Schönes Bild Liebe @ ND1010 –