代码片--Android--图片下载进度条
来源:互联网 发布:java web分页完整代码 编辑:程序博客网 时间:2024/05/16 23:43
public class MainActivity extends ActionBarActivity { Button b; ImageView i; ProgressDialog p;//进度条 String path="http://pic.nipic.com/2007-12-23/200712231523651_2.jpg";//图片地址 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); b = (Button) findViewById(R.id.button1); i = (ImageView) findViewById(R.id.imageView1); p = new ProgressDialog(this); p.setTitle("提示信息"); p.setMessage("下载中,请稍后..."); p.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度样式 b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new MyTask().execute(path);//启动AsyncTask } }); }//第一个参数是路径//第二个参数是进度刻度//但三个参数是返回类型 class MyTask extends AsyncTask<String, Integer, Bitmap> {//准备阶段,一般显示进度条 @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); p.show(); }//后台长时间跑的逻辑业务 @Override protected Bitmap doInBackground(String... params) { // TODO Auto-generated method stub Bitmap bp=null; InputStream in=null; ByteArrayOutputStream bo=new ByteArrayOutputStream(); //设置Http协议访问 HttpClient httpClient=new DefaultHttpClient(); HttpGet httpGet =new HttpGet(params[0]); try { HttpResponse httpResponse=httpClient.execute(httpGet); //当Http请求成功返回 if(httpResponse.getStatusLine().getStatusCode()==200){ in=httpResponse.getEntity().getContent();//通过流得到实体内容 long file_length=httpResponse.getEntity().getContentLength();//得到文件总容量 int len=0;//每次读取长度 int total_length=0;//已读取总长 byte[] data=new byte[1024]; while ((len=in.read(data))!=-1) { total_length+=len; int value= (int) ((total_length/(float)file_length)*100); publishProgress(value); bo.write(data, 0, len); } byte[] result=bo.toByteArray(); bp=BitmapFactory.decodeByteArray(result, 0, result.length); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }//对各种流关闭 finally{ if(in!=null){ try { in.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(bo!=null){ try { bo.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } return bp; }//时时更新UI进度条 @Override protected void onProgressUpdate(Integer... values) { // TODO Auto-generated method stub super.onProgressUpdate(values); p.setProgress(values[0]); }//doInBackground方法结束后执行此方法,对UI做最后更新 @Override protected void onPostExecute(Bitmap result) { // TODO Auto-generated method stub super.onPostExecute(result); p.dismiss(); i.setImageBitmap(result); } }}
0 0
- 代码片--Android--图片下载进度条
- android异步任务图片下载(进度条提示进度)
- 代码片--Android--SharedPreferences
- 图片下载添加进度条
- Android开发代码片收集
- 代码片--Android--Handler&Message
- android:一句代码搞定图片下载和缓存
- java图片下载代码
- java图片下载代码
- jQuery 实现图片下载代码
- jQuery 实现图片下载代码
- Android常用实用功能代码片大全
- Android开发十个简单实用代码片
- Android常用实用功能代码片大全
- AsyncTask的使用 (二)图片下载,进度条
- SDWebImage加进度条展示图片下载进度
- C# winform带进度条的图片下载
- C# winform带进度条的图片下载
- Redis服务的安装使用
- java 内部类
- 联想2015云计算大数据实习生面试题
- Sublime Text3 安装Lua运行环境
- Python 2.X 下,比较两个字符串是否相同
- 代码片--Android--图片下载进度条
- 面试aop
- 定义返回函数指针的指针
- inline
- 【转】DB2+AIX 字符集问题
- 【cocos2d-x】属性设置及单例模式
- C语言判断一个字符串是文件还是文件夹
- Velocity入门
- [Python] Ghost.py 模擬瀏覽器執行 JavaScript 安裝筆記