zoukankan      html  css  js  c++  java
  • Android 异步下载

    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<Object, Void, Bitmap> {
        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);
        }
    }
  • 相关阅读:
    1019.安全技能树
    1020.Burp Suite扩展之Java-Deserialization-Scanner
    1018.渗透利器
    1016.XXE漏洞攻防学习
    1017.前端黑在线工具
    1015.WebGoat SQL注入之 Order by注入解题思路
    1014.WebGoat SQL盲注 解题思路
    2019春节防坑指南之抢票陷阱(文末有彩蛋)
    【年度大戏】勒索”嘿客“无间道之战
    470余万条疑似12306用户数据遭贩卖 嫌疑人被刑拘
  • 原文地址:https://www.cnblogs.com/nanfei/p/8883960.html
Copyright © 2011-2022 走看看