博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 异步下载
阅读量:5023 次
发布时间:2019-06-12

本文共 3258 字,大约阅读时间需要 10 分钟。

package com.example.demo1;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import com.tiffdecoder.TiffDecoder;import android.app.Activity;import android.graphics.Bitmap;import android.os.AsyncTask;import android.widget.ImageView;public class DownloadImagesTask extends AsyncTask
{ ImageView imageView = null; Activity activity = null; @Override protected Bitmap doInBackground(Object... parameters) { this.imageView = (ImageView)parameters[0]; this.activity = (Activity)parameters[1]; try { return download_Image((String)imageView.getTag()); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap result) { if(result != null) imageView.setImageBitmap(result); } private Bitmap download_Image(String url) throws IOException { File file = downloadFile(url); TiffDecoder.nativeTiffOpen(file.getPath()); int[] pixels = TiffDecoder.nativeTiffGetBytes(); Bitmap mBitmap = Bitmap.createBitmap(pixels, TiffDecoder.nativeTiffGetWidth(), TiffDecoder.nativeTiffGetHeight(),Bitmap.Config.ARGB_8888); TiffDecoder.nativeTiffClose(); return mBitmap; } private File downloadFile(String strUrl) throws IOException { URL url = new URL(strUrl); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(true); urlConnection.connect(); File file = File.createTempFile("myfile", ".tif", this.activity.getCacheDir()); if(file.exists()) file.delete(); file.createNewFile(); FileOutputStream fileOutput = new FileOutputStream(file); InputStream inputStream = urlConnection.getInputStream(); byte[] buffer = new byte[1024]; int bufferLength = 0; while ( (bufferLength = inputStream.read(buffer)) > 0 ) { fileOutput.write(buffer, 0, bufferLength); } fileOutput.close(); return file; }}
public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        StrictMode.setThreadPolicy(new                 StrictMode.ThreadPolicy.Builder().detectDiskReads().detectDiskWrites().detectNetwork().penaltyLog().build());                        StrictMode.setVmPolicy(                new StrictMode.VmPolicy.Builder().detectLeakedSqlLiteObjects().detectLeakedClosableObjects().penaltyLog().penaltyDeath().build());                                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,                                WindowManager.LayoutParams.FLAG_FULLSCREEN);        ImageView image = (ImageView)this.findViewById(R.id.image);        image.setTag("http://xibei1-image.xxx.com/00006009b4673bbc-ff2a-49bd-91fe-764c01b2acce01.tif");        new DownloadImagesTask().execute(image,this);    }}

 

转载于:https://www.cnblogs.com/nanfei/p/8883960.html

你可能感兴趣的文章
css3 标签 background-size
查看>>
python itertools
查看>>
Linux内核调试技术——jprobe使用与实现
查看>>
样式、格式布局
查看>>
ubuntu设计文件权限
查看>>
Vue双向绑定原理详解
查看>>
Android基础总结(5)——数据存储,持久化技术
查看>>
关于DataSet事务处理以及SqlDataAdapter四种用法
查看>>
bootstrap
查看>>
http://lorempixel.com/ 可以快速产生假图
查看>>
工程经验总结之吹水"管理大境界"
查看>>
为什么JS动态生成的input标签在后台有时候没法获取到
查看>>
20189210 移动开发平台第六周作业
查看>>
java之hibernate之基于外键的双向一对一关联映射
查看>>
rxjs一句话描述一个操作符(1)
查看>>
第一次独立上手多线程高并发的项目的心路历程
查看>>
ServiceStack 介绍
查看>>
Centos7下载和安装教程
查看>>
无谓的通宵加班之后的思索
查看>>
S1的小成果:MyKTV系统
查看>>