Android网络图片异步加载
2012-08-05 18:07
501 查看
部分源码如下:
dialog= ProgressDialog.show(this,"","加载数据,请稍等 …",true,true); //图片资源 String url = "http://www.kzwlg.com.cn:1080/Wlg_server2/"+bundle.getString("pic"); //得到可用的图片 getHttpBitmap(url);
/** * 对图片进行大小缩放 * @param bm * @param newWidth * @param newHeight * @return */ protected Bitmap scaleImg(Bitmap bm, int newWidth, int newHeight) { // 图片源 // Bitmap bm = BitmapFactory.decodeStream(getResources() // .openRawResource(id)); // 获得图片的宽高 int width = bm.getWidth(); int height = bm.getHeight(); // 设置想要的大小 int newWidth1 = newWidth; int newHeight1 = newHeight; // 计算缩放比例 float scaleWidth = ((float) newWidth1) / width; float scaleHeight = ((float) newHeight1) / height; // 取得想要缩放的matrix参数 Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); // 得到新的图片 Bitmap newbm = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, true); return newbm; }
/** * 处理ImageView */ final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: image.setImageBitmap(scaleImg(bitmap, 300, 300)); dialog.dismiss(); break; default: break; } } }; /** * 从网络位置得到图片 * 采用handler+Thread模式实现多线程异步加载 * @param url * @return */ private void getHttpBitmap( final String url) { Thread thread=new Thread(){ public void run() { URL myFileURL; try{ myFileURL=new URL(url); //获得连接 HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection(); //设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制 conn.setConnectTimeout(6000); //连接设置获得数据流 conn.setDoInput(true); //不使用缓存 conn.setUseCaches(false); //这句可有可无,没有影响 //conn.connect(); //得到数据流 InputStream is = conn.getInputStream(); //解析得到图片 bitmap = BitmapFactory.decodeStream(is); //关闭数据流 is.close(); Message message = handler.obtainMessage(); message.what=1; handler.sendMessage(message); }catch(Exception e){ e.printStackTrace(); } }; }; thread.start(); thread=null; }
相关文章推荐
- Android批量图片加载经典系列——使用二级缓存、异步网络负载形象
- Android利用AsyncTask异步加载网络图片,详细教程,图+代码+文字+项目
- Android 异步加载网络图片
- Android 如何实现ListView异步加载网络图片
- Android 异步加载网络图片并缓存到本地 软引用 学习分享
- android开发--ListView+Json+异步网络图片加载+滚动翻页的例子(图片能缓存,图片不错乱)
- Android异步加载访问网络图片-解析json
- 深入剖析Android之ListView从网络异步加载图片
- Android之ListView异步加载网络图片(优化缓存机制)
- android-------用双缓存技术优化listview异步加载网络图片
- Android异步加载网络图片的工具类
- Android 异步加载网络图片并缓存到本地
- Android批量图片加载经典系列——使用xutil框架缓存、异步加载网络图片
- android 异步加载网络图片缓存机制
- Android 异步加载网络图片并缓存到本地
- Android之ListView异步加载网络图片(优化缓存机制)
- Android之异步加载网络图片
- Android:ListView异步加载图片(实现网络下载、存储本地、缓存内存、压缩显示)
- Android中网络图片的异步加载
- Android之ListView异步加载网络图片(优化缓存机制)