本文参照自:  http://developer.51cto.com/art/201001/180968.htm

在Android中,显示网络图片还是比较简单的。当我们开始启动一个任务加载一个View对应的图片时,应该通过setTag()把该View的tag设置为图片的URL.当实际取得该图片时,应该检查其对应的URL是否和View的TAG一致,只有一致时才把该图片实际应用于该View.
实例1
InternetImageDemoActivity.java文件
package com.lenovo.robin.test;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ImageView;
public class InternetImageDemoActivity extends Activity {
Bitmap bmImg;
ImageView imView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.internet_image_demo);
imView = (ImageView) findViewById(R.id.imageView1);
String imageUrl = "http://img6.ph.126.net/hBiG96B8egigBULxUWcOpA==/109212290980771276.jpg";
final ImageView imageView = imView;
imageView.setTag(imageUrl);
ImageLoadedCallback callback = new ImageLoadedCallback() {
@Override
public void loaded(Bitmap bitMap, String url) {
// TODO Auto-generated method stub
if (url.equals(imageView.getTag())) {
imageView.setImageBitmap(bitMap);
}
}
};
new DownloadImageTask(callback).execute(imageUrl);
}
}

class DownloadImageTask extends AsyncTask<String, Integer, Bitmap> {
ImageLoadedCallback callback = null;
String url = null;
DownloadImageTask(ImageLoadedCallback callback) {
this.callback = callback;
}
protected Bitmap doInBackground(String... urls) {
URL myFileUrl = null;
Bitmap bitmap = null;
url = urls[0];
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
HttpURLConnection conn=null;
InputStream is=null;
try {
conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
finally
{
if(conn!=null)
{
try {
conn.connect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
conn=null;
}
if(is!=null)
{
try {
is.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
is=null;
}
}
return bitmap;
}
protected void onPostExecute(Bitmap bitMap) {
callback.loaded(bitMap, url);
}
}

interface ImageLoadedCallback {
public void loaded(Bitmap bitMap, String url);
}

关于AsyncTask请参照《AsyncTask简介》
布局文件internet_image_demo.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="34dp"
  />
</RelativeLayout>
另外在AndroidManifest.xml中需要添加以下权限,以便访问网络
<uses-permission android:name="android.permission.INTERNET" />

Android中显示网络图片相关推荐

  1. android sdcard 不存在,在android中显示sdcard上不存在的文件的提醒

    以下代码可正常运行,并播放sd卡上的音乐文件. 我想在sdcard上不存在音乐文件("不存在的音乐文件")时显示警报. 我该写些什么?在android中显示sdcard上不存在的文 ...

  2. Android中获取网络图片的三种方法

    android中获取网络图片是一件耗时的操作,如果直接获取有可能会出现应用程序无响应(ANR:Application Not Responding)对话框的情况.对于这种情况,一般的方法就是耗时操作用 ...

  3. android 显示进度,progressdialog-如何在Android中显示进度对话框?

    progressdialog-如何在Android中显示进度对话框? 当我单击"登录"按钮时,我想显示ProgressDialog,这需要时间才能移动到另一个页面. 我怎样才能做到 ...

  4. android 展示pdf,Android中显示在线PDF

    Android中显示PDF iOS的WebView能从线上url直接显示pdf,而Android的WebView不能直接显示, Android的WebView要显示pdf需要拼接url到google的 ...

  5. Android中显示gif动态图片

    在android中显示一个静态图片比如png jpg等等都很方便,但是如果要显示一个gif 动态图片就需要进行一些处理. 本文是采用自定义view 然后进行重新onDraw方法来实现 首先自定义Vie ...

  6. Android TextView显示网络图片

    前言:程序猿真的是有个通病啊,电梯上就在研究电梯的逻辑代码,走路看到红绿灯也会去研究算法,今天心情不错,于是就发了一个说说,发现某q空间中显示了我发的说说,但是我发的笑脸跟哭脸表情由于网络慢,很久才加 ...

  7. android ListView显示网络图片

    研究了android两个礼拜,稍微有了点眉目,开始正式帮公司开发应用的时候,发现ListView没有现成的显示网络图片的类或方法,网上查了查也没找到好的解决方法.心一横,自己研究吧,现在把我的解决办法 ...

  8. Android中显示输入的隐藏密码/Android多语系支持

    1.我们常常会看到我们输入的密码都是以小黑点的形式出现,这在Android中实现是很简单的,只需要设置一个属性即可. 需要设置EditText的inputType属性,设置如下: android:in ...

  9. 在Android中显示GIF动画

    gif图动画在android中还是比较常用的,比如像新浪微博中,有很多gif图片,而且展示非常好,所以我也想弄一个.经过我多方的搜索资料和整理,终于弄出来了,其实github上有很多开源的gif的展示 ...

最新文章

  1. id文本框适应文字_国家宣布!快递要大降价?个人ID将取代邮政编码
  2. conda 删除环境_conda建立、删除、退出环境
  3. 怎么讲d 盘里的软件弄到桌面_教大家电脑怎么把e盘文件移到d位置
  4. 摄影师张梦格App项目总结
  5. 爬虫爬到的网页源代码不是真正的源代码_Python爬虫经常爬不到数据?你可以看一下这篇文章...
  6. eclipse语言包安装太慢,或者卡住不动的解决方法
  7. deepin输入法配置
  8. git 拉取最新代码
  9. Android 给图片加边框
  10. 《信息安全概论》总结(1)
  11. linux格式化卡死,在Linux中格式化SD卡失败
  12. python爬虫实例手机_10个python爬虫入门实例
  13. 灵感1-把歌曲(mp3等)转换乐谱(简谱、五线谱)等
  14. (论文阅读)NMS by Representative Region: Towards Crowded Pedestrian Detection by Proposal Pairing
  15. 《Microduino实战》——3.6 RGB彩色LED——彩色的世界
  16. leetcode报错:member access within null pointer of type struct ListNode
  17. 【小月电子】ALTERA FPGA开发板系统学习教程-LESSON12 IPCORE核之FIFO详细教程
  18. AtCoder Beginner Contest 167 A Registration 字符串比较
  19. 基于易灵思开发板RiscV的调试流程
  20. 卡巴斯基KAV KIS6.0激活码大全

热门文章

  1. 软件测试面试回答技巧
  2. Ubuntu下启用ssh
  3. VBA批量操作excel文件
  4. 【广告算法】基础知识补充
  5. 投资持续升温,智能汽车“网络安全”赛道风口已至
  6. Android中cannot be resolved or is not a field错误的解决办法
  7. 前端-跨端跨平台框架介绍
  8. NC工具—文件传输shell获取功能
  9. 漫画阅读器ComicReader应用源码
  10. JavaSpringCloud-统一网关GateWay