使用URL读取网络图片资源

时间:2023-03-08 23:45:26
使用URL读取网络图片资源

URL(Uniform Resource Locator) 对象代表统一资源定位器。

代码如下:

public class MainActivity extends ActionBarActivity {
private ImageView image;
//从网络下载得到的图片
Bitmap bitmap;
Handler handler = new Handler(){ @Override
public void handleMessage(Message msg) {
if(msg.what == 0x123){
image.setImageBitmap(bitmap);
} } };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView)this.findViewById(R.id.show);
//开启新线程,新线程中不能直接修改UI控件的内容。
new Thread(){ @Override
public void run() {
try {
//定义URL对象,给出URL地址
URL url = new URL("http://www.duducat.com/home/upload/14477558734.jpg");
//打开URL对应的资源的输入流
InputStream is = url.openStream();
//从InputStream中解析出图片
bitmap = BitmapFactory.decodeStream(is);
//发送消息,通知UI组件显示该图片
handler.sendEmptyMessage(0x123);
is.close();
//再次打开URL对应的资源输入流
is = url.openStream();
//打开手机文件对应的输入流
OutputStream os = openFileOutput("14477558734.jpg", MODE_WORLD_READABLE);
byte [] buff = new byte[1024];
int hasRead = 0;
//将URL对应的资源下载到本地
while((hasRead = is.read(buff)) > 0){
os.write(buff, 0, hasRead);
}
is.close();
os.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }.start();
}

千万别忘了在AndroidManifest.xml文件中授予网络的权限。

<uses-permission android:name="android.permission.INTERNET"/>