Android(安卓)网络下载图片
16lz
2022-05-24
2中方法:
1.
public byte[] downloadResource(Context context, String url)throws ClientProtocolException, IOException {isStop = false;ByteArrayBuffer buffer = null;HttpGet hp = new HttpGet(url);httpClient = new DefaultHttpClient();String netType = isNetType(context);if (netType != null & netType.equals("cmwap")) {HttpHost proxy = new HttpHost("10.0.0.172", 80);httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY,proxy);}HttpConnectionParams.setConnectionTimeout(httpClient.getParams(),5 * 1000);HttpConnectionParams.setSoTimeout(httpClient.getParams(), 60 * 1000);HttpResponse response = httpClient.execute(hp);if (response.getStatusLine().getStatusCode() == 200) {inputstream = response.getEntity().getContent();if (inputstream != null) {int i = (int) response.getEntity().getContentLength();buffer = new ByteArrayBuffer(1024);byte[] tmp = new byte[1024];int len;while (((len = inputstream.read(tmp)) != -1)&& (false == isStop)) {buffer.append(tmp, 0, len);}}cancel();}return buffer.toByteArray();}调用方法:
protected Bitmap doInBackground(WonderfulprogramInfo... params){Bitmap bitmap = null;try{String urls = Constant.url + params[0].getWonderfulImgUrl();boolean isExists = Files.compare(urls);if (isExists == false){//网络下载图片数据Net net = new Net();byte[] data = net.downloadResource(HomeActivity.this, urls);bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);imagesCache.put(urls, bitmap); // 把下载好的图片保存到缓存中Files.saveImage(urls, data);} else{//本地读取图片数据byte[] data = Files.readImage(urls);BitmapFactory.Options opt = new BitmapFactory.Options();opt.inPreferredConfig = Bitmap.Config.RGB_565;opt.inPurgeable = true;opt.inInputShareable = true;// //获取资源图片// InputStream is =// context.getResources().openRawResource(resId);// return BitmapFactory.decodeStream(is,null,opt);bitmap = BitmapFactory.decodeByteArray(data, 0, data.length, opt);imagesCache.put(urls, bitmap); // 把下载好的图片保存到缓存中}
方法二:
class DownLoadTask extends AsyncTask<String, Void, Bitmap> {private ImageView imageView;private Integer positions;public DownLoadTask(ImageView view, int position) {imageView = view;this.positions = position;}protected Bitmap doInBackground(String... params) {URL url;try {url = new URL(params[0]);InputStream is = url.openStream();BitmapFactory.Options opt = new BitmapFactory.Options();opt.inPreferredConfig = Bitmap.Config.RGB_565;opt.inPurgeable = true;opt.inInputShareable = true;// 获取资源图片Bitmap bitmap = BitmapFactory.decodeStream(is, null, opt);HomeActivity.TopGalleryBitmap.put(positions, bitmap);return bitmap;} catch (OutOfMemoryError err) {err.printStackTrace();} catch (MalformedURLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}protected void onPostExecute(Bitmap result) {super.onPostExecute(result);imageView.setImageBitmap(result);}}
更多相关文章
- Android(安卓)Studio实现Activity生命周期的7个方法Log打印日志
- Android开发规范
- Android之修改部分字体颜色
- Android(安卓)camera调用出现错误解决方法
- Android(安卓)Studio常见错误及解决方法汇总
- android 控件属性
- android 4.0.3 dhcpcd使用方法
- 浅谈Java中Collections.sort对List排序的两种方法
- Python list sort方法的具体使用