AsyncTask 异步加载网络图片简单应用
来源:互联网 发布:编码器编程程序接线图 编辑:程序博客网 时间:2024/05/29 19:29
这个是一个加载网络图片资源的小Demo可以很好地解释AsyncTask的工作流程
布局文件如下所示
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:padding="16dp" android:layout_width="match_parent" android:layout_height="match_parent"><ImageView android:id="@+id/asyimg" android:layout_width="match_parent" android:layout_height="match_parent" /> <ProgressBar android:id="@+id/asyprog" android:visibility="gone" android:foregroundGravity="center" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /></RelativeLayout>
MainActivity代码
package com.imooc.www.moocdemo;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.AsyncTask;import android.os.Bundle;import android.os.PersistableBundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.ImageView;import android.widget.ProgressBar;import java.io.BufferedInputStream;import java.net.URL;import java.io.IOException;import java.io.InputStream;import java.net.URLConnection;/** * Created by Administrator on 2016/5/12. */public class AsyncImageActivity extends AppCompatActivity { private ImageView mImageView; private ProgressBar mProgressBar; private static String URL = "http://img.my.csdn.net/uploads/201504/12/1428806103_9476.png"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.asyncimageactivity); mImageView = (ImageView) findViewById(R.id.asyimg); mProgressBar = (ProgressBar) findViewById(R.id.asyprog); //设置传递进来的参数 new MyImageAsyncTask().execute(URL); } class MyImageAsyncTask extends AsyncTask<String, Void, Bitmap> { @Override protected Bitmap doInBackground(String... params) { //获取传进来的参数 params为参数的意思 参数的个数不确定 params【0】表示获取第一个参数要注意一下 String url = params[0]; Bitmap bitmap = null; URLConnection connection; InputStream is; try { connection = new URL(url).openConnection(); is = connection.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); //通过decodeStream将输入流解析成bitmap bitmap = BitmapFactory.decodeStream(bis); //关闭输入流 is.close(); bis.close(); } catch (IOException e) { e.printStackTrace(); } //将bitmap作为返回值返回 return bitmap; } @Override protected void onPreExecute() { super.onPreExecute(); mProgressBar.setVisibility(View.VISIBLE); } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); mProgressBar.setVisibility(View.GONE); mImageView.setImageBitmap(bitmap); } @Override protected void onProgressUpdate(Void... values) { super.onProgressUpdate(values); } }}
0 0
- AsyncTask 异步加载网络图片简单应用
- 采用AsyncTask异步加载网络图片
- 异步加载图片AsyncTask
- AsyncTask异步加载图片
- AsyncTask异步加载图片
- 网络相册:Gallery+AsyncTask+URLConnection 实现异步加载网络图片
- 网络相册:Gallery+AsyncTask+URLConnection 实现异步加载网络图片
- AsyncTask实现ListView中异步加载网络图片
- 使用AsyncTask异步更新UI界面(加载网络图片)
- 异步加载网络图片(多线程,和AsyncTask)
- Android 异步加载图片-AsyncTask
- Android 异步加载图片-AsyncTask
- AsyncTask异步加载图片示例
- 使用AsyncTask异步加载图片
- AsyncTask异步加载网络数据
- AsyncTask 异步显示网络图片
- GCD的简单应用--异步加载图片
- AsyncTask异步任务学习笔记(一、异步任务加载网络图片(多图))
- android环境搭建
- 防刷新,只有关闭浏览器才会增加点击量
- Caffe研究实践 四 -------lenet_train_test.prototxt分析
- Linux上JDK的安装和卸载
- qt tableb view 打印预览和打印的问题 个人解决办法
- AsyncTask 异步加载网络图片简单应用
- HTTPS的误解(二)
- ctf练习---ASCII码而已
- 在没SQL Server数据库情况下怎么打开.MDF文件?
- 阅读图书翻页
- Michael的Python笔记(一)
- EditText中英文混输限制长度
- Smobiler如何开启日志功能
- 聚集索引和非聚集索引(整理)