Android优化网络下载图片资源

我们知道开发Android应用的编程中,对于图片的处理是很头痛的,因为图片资源的获取接触较少,在加上图片资源过大,导致程序会崩溃!!

因此对于Android图片的网络下载,我有源码分享,请看一下我的分享思路以及代码实现。

如何从网络上下载图片资源的基本思路:这里我们首先要获取到图片的地址,才能进行下载该图片,然后就是我们学到的http网络下载知识点,

还有图片下载是一个耗时操作,而对于耗时操作,Android编程是不能发生在主线程中, 所以我们得新建一个子线程来进行下载图片资源的启动,

然后别忘了在android的AndroidMainifest.xml设置网络连接权限,设置如下:

如何从网络上下载图片资源的Android具体编码如下:

 

package com.ldc.day10thread;

import java.net.HttpURLConnection;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;

public class HandlerImageActivity extends Activity {
// 获取图片地址
String imgs = "http://img-download.pchome.net/download/1k0/jt/48/o62snf-mek.jpg";
Bitmap bm = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 第三步:创建子线程thread处理耗时操作并发送消息给handler
Thread thread = new Thread() {
@Override
public void run() {
super.run();
// 3.1 处理耗时操作
URL url;
try {
//链接网络图片地址
url = new URL(imgs);
//打开网络链接
HttpURLConnection conn = (HttpURLConnection) url
.openConnection();
/** 把输入流直接转换成一个bitmap */
bm = BitmapFactory.decodeStream(conn.getInputStream());
//关闭链接
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
// 3.2 调用handler的sendEmptyMessage(Message msg)方法发送消息
// 给handler处理
handler.sendEmptyMessage(0x11);
}
};
// 3.3将线程开启
thread.start();
}

// 第一步:在主线程中创建Handler类
Handler handler = new Handler() {
// 第二步 : 重写handlerMessage方法
@Override
public void handleMessage(Message msg) {
// 第四步:处理从子线程中发送过来的消息
// 4.1 对暗号
if (msg.what == 0x11) {
ImageView iv = (ImageView) findViewById(R.id.imageView_handler);
iv.setImageBitmap(bm);
}
};
};

@Override
protected void onDestroy() {
super.onDestroy();

              //回收图片资源
if (bm != null && !bm.isRecycled()) {
bm.recycle();
}
}
}

结果运行如下:ps:真机测试通过了

Android优化网络下载图片资源_第1张图片

Android优化网络下载图片资源_第2张图片

以上是完整的Android应用代码,相信你一定会了吧!

欢迎关注我的博客:http://write.blog.csdn.net/postedit?ref=toolbar&ticket=ST-164115-Z9SpXDQWvqEZqqNPfOwA-passport.csdn.net

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

如何从网络上下载图片资源的

你可能感兴趣的:(Android,图片,网络)