2014-10-08 3 views
0

Я пытаюсь извлечь изображение из url и установить его в изображение. Изображение маленькое по размеру, и я использую asynctask. вот основной код операции. Я пробовал несколько кодов с сайта diff, но ничего не работает. plz не предлагают волонтерскую библиотеку.Не удалось показать изображение с url в imageview

package com.example.jsonimage; 

import java.io.File; 
import java.io.IOException; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 

import android.os.AsyncTask; 
import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.view.Menu; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 

    Thread t; 
    Bitmap bitmap; 
    ImageView iv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     iv=(ImageView)findViewById(R.id.imageView1); 

     //runthread(); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 



    public class loadimage extends AsyncTask<Void, Void, Void>{ 

     @Override 
     protected Void doInBackground(Void... params) { 
      // TODO Auto-generated method stub 
      URL url; 
      try { 
       url = new URL("http://wptrafficanalyzer.in//p//demo1//india.png"); 

       InputStream is=url.openStream(); 

       bitmap= BitmapFactory.decodeStream(is); 

      } catch (MalformedURLException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      //HttpURLConnection huc =(HttpURLConnection)url.openConnection(); 
      //huc.connect(); 
      catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 



      return null; 
     } 


     @Override 
     protected void onPostExecute(Void result) { 
      // TODO Auto-generated method stub 
      super.onPostExecute(result); 
      iv.setImageBitmap(bitmap); 
     } 

    } 



} 

ответ

2

Вы не вызываете задачу Async. На вашем MainActivity попробовать:

new loadimage().execute(); 

Также вы можете использовать эту функцию, чтобы получить растровое изображение из URL, если ваш не работает:

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 (IOException e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 
+0

я просто забыл выполнить AsyncTask thansk –

Смежные вопросы