Android 非同步下載

來源:互聯網
上載者:User

標籤:setimage   amp   scree   port   android   down   nload   pixel   ace   

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);    }}

 

Android 非同步下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.