【URL转Drawable之 Android中获取网络图片的三种方法】赋料扬雄敌,诗看子建亲。这篇文章主要讲述URL转Drawable之 Android中获取网络图片的三种方法相关的知识,希望能为你提供帮助。
转载自:
http://doinone.iteye.com/blog/1074283
Android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况。对于这种情况,一般的方法就是耗时操作用线程来实现。下面列三种获取url图片的方法:
1.直接获取:(容易:ANR,不建议)
[java]
view plain
copy
- mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
- Drawable drawable = loadImageFromNetwork(IMAGE_URL);
- mImageView.setImageDrawable(drawable) ;
公用方法:
[java] view plain copy
- private Drawable loadImageFromNetwork(String imageUrl)
- {
- Drawable drawable = null;
- try {
- // 可以在这里通过文件名来判断,是否本地有此图片
- drawable = Drawable.createFromStream(
- new URL(imageUrl).openStream(), "image.jpg");
- } catch (IOException e) {
- Log.d("test", e.getMessage());
- }
- if (drawable == null) {
- Log.d("test", "null drawable");
- } else {
- Log.d("test", "not null drawable");
- }
- return drawable ;
- }
[java] view plain copy
- mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
- new Thread(new Runnable(){
- Drawable drawable = loadImageFromNetwork(IMAGE_URL);
- @Override
- public void run() {
- // post() 特别关键,就是到UI主线程去更新图片
- mImageView.post(new Runnable(){
- @Override
- public void run() {
- // TODO Auto-generated method stub
- mImageView.setImageDrawable(drawable) ;
- }}) ;
- }
- }).start() ;
3.AsyncTask获取url图片
[java] view plain copy
- mImageView = (ImageView)this.findViewById(R.id.imageThreadConcept) ;
- new DownloadImageTask().execute(IMAGE_URL) ;
- private class DownloadImageTask extends AsyncTask< String, Void, Drawable>
- {
- protected Drawable doInBackground(String... urls) {
- return loadImageFromNetwork(urls[0]);
- }
- protected void onPostExecute(Drawable result) {
- mImageView.setImageDrawable(result);
- }
- }
推荐阅读
- android 存储图片到data目录和读取data目录下的图片
- Android 中使用MediaRecorder实现视频录制功能
- 在Android中Intent的概念及应用——Intent过滤器相关选项
- 前16名最佳Grammarly替代品和免费语法检查器推荐合集
- 如何在Google Chrome浏览器中打开拼写检查(操作方法教程)
- 14大假电子邮件生成器推荐合集(用于获取临时电子邮件地址)
- 如何增加Windows 10耳机和扬声器的低音(你知道哪些方法?)
- 如何使用任务计划程序自动关闭Windows 10(操作方法教程)
- 如何在Word 2019/2016/2013中制作一页风景(操作方法教程)