android图片下载过程控制 (开始,正在,结束,失败)

public class ImageDownloadControll {

    private byte[] imageBytes;

    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what){
                case 0:
                    Log.d("info","开始下载");
                    break;
                case 1:
                    Log.d("info","正在下载");
                    break;
                case 2:
                    Log.d("info","下载结束");
                    break;
                case 3:
                    Log.d("info","下载失败");
                    break;
            }

        }
    };
    public void download(ImageView imageView,String url){
        try {
            URL url1=new URL(url);
            HttpURLConnection connection= (HttpURLConnection) url1.openConnection();
            connection.setRequestMethod("GET");
            connection.setReadTimeout(10*1000);
            //开始下载
            sendMessageByWhat(0);
            InputStream is=connection.getInputStream();
            ByteArrayOutputStream bos=new ByteArrayOutputStream();
            byte[] bufferBytes=new byte[1024];
            int length=-1;
            while ((length=is.read(bufferBytes))!=-1){
                //正在下载
                sendMessageByWhat(1);
                bos.write(bufferBytes,0,length);
            }
            imageBytes=bos.toByteArray();
            sendMessageByWhat(2);
            //下载结束
            is.close();
            bos.close();
        } catch (IOException e) {
            //下载失败
            sendMessageByWhat(3);
            e.printStackTrace();
        }
    }
    private void sendMessageByWhat(int what){
        Message msg=new Message();
        msg.what=what;
        handler.sendMessage(msg);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容