2016-08-22 76 views
-2
public class MainActivity extends Activity { 
ImageView downloadedimg; 
public class ImageDownloader extends AsyncTask<String,void,Bitmap> { 


    @Override 
    protected Bitmap doInBackground(String... urls) { 
     try{ 

      URL url=new URL(urls[0]); 
      HttpURLConnection connection=(HttpURLConnection) url.openConnection(); 
      connection.connect(); 
      InputStream inputStream=connection.getInputStream(); 
      Bitmap mybitmap= BitmapFactory.decodeStream(inputStream); 
      return mybitmap; 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 

public void downloadImage(View view) { 

    ImageDownloader task = new ImageDownloader; 
    Bitmap myImage; 
    try { 
     myImage = task.execute("https://www.google.co.in/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&ved=0ahUKEwiOw5HvydXOAhVKqo8KHYHfAtIQjRwIBw&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBart_Simpson&psig=AFQjCNFZSwEG2tjp15Km14uuzEsmZUZ_MQ&ust=1471974330385306"); 
     downloadedimg.setImageBitmap(myImage); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    downloadedimg=(ImageView)findViewById(R.id.imageView); 
} 

在行 myImage = task.execute(“some url to image address online”);task.execute url与位图不匹配

的编译显示错误

不兼容的类型

需要:android.graphics.Bitmap

发现:android.os.AsyncTask “<” java.lang.String中,空隙,机器人。 graphics.Bitmap>

Java的托架的双码盈不声明

的一部分@edit谢谢FO r先前的建议我搜索并找到.get()方法 我使用任务(“”)。get()返回位图图像和代码编译没有错误,但现在nothings发生时,我点击下载图像按钮

+0

阅读此:https://developer.android.com/reference/android/os/AsyncTask.html - 示例和说明足以让您了解罪魁祸首并自行修复代码。 –

回答

0

AsyncTask .execute不会返回下载的对象。它不能,AsyncTask的整个想法就是它的异步。任何需要使用结果的代码都应放在onPostExecute(用于UI更改)或doInBackground(用于处理数据)末尾。