使用AsyncTask自定义图片加载类
来源:互联网 发布:软件无线电技术与实现 编辑:程序博客网 时间:2024/05/23 14:23
/** * Created by qizepu on 2017/4/15. * 创建一个类 继承AsyncTask 用来加载图片 参数类型是String 返回类型是Bitmap */public class LoadImageActivity extends AsyncTask<String,Void,Bitmap> { //定义一个图片的接口 用于回调 public interface ImageCallBack{ void getBitmap(Bitmap bitmap); } //定义变量记住调用者所传递进来的回调监听对象 private ImageCallBack imageCallBack; //创建构造方法 public LoadImageActivity(ImageCallBack imageCallBack){ this.imageCallBack=imageCallBack; } //重写方法 @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); //设置图片 回调回去 if (bitmap != null){ imageCallBack.getBitmap(bitmap); } } //加载图片 @Override protected Bitmap doInBackground(String... params) { try { String path = params[0]; URL url = new URL(path); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置请求方式,请求时间及服务器响应时间 connection.setRequestMethod("GET"); connection.setConnectTimeout(5000); connection.setReadTimeout(5000); //判断服务器是否连接成功并响应 if (connection.getResponseCode() == 200){ //得到图片流 InputStream is = connection.getInputStream(); ////将图片流转化成Bitmap位图,返回 Bitmap bitmap = BitmapFactory.decodeStream(is); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }}调用public class MainActivity extends AppCompatActivity { private ImageView image; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image = (ImageView) findViewById(R.id.image_1); } //点击事件 加载图片 public void loadImages(View view){ loadImage(); } public void loadImage(){ //实例化LoadImageActivity类 实现其接口的方法 LoadImageActivity loadImageActivity = new LoadImageActivity(new LoadImageActivity.ImageCallBack() { @Override public void getBitmap(Bitmap bitmap) { if (bitmap != null){ image.setImageBitmap(bitmap); } } }); //输入图片地址 loadImageActivity.execute("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2200875053,59610386&fm=23&gp=0.jpg"); }}
0 0
- 使用AsyncTask自定义图片加载类
- 使用AsyncTask加载图片
- 使用AsyncTask加载图片
- 使用AsyncTask 自定义加载图片(接口回调)
- 使用AsyncTask异步加载图片
- 使用AsyncTask 加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- [Android] AsyncTask使用实例---加载网络图片
- 使用AsyncTask实现网络的图片加载
- Android有效加载图片 之 使用AsyncTask异步加载图片
- AsyncTask 加载图片的工具类
- RPG角色生成器(C++)
- [李景山php] ubuntu/centos 搭建 搭建 redis 集群
- 今天学了SqlServer模糊查询、聚合函数 和分组查询
- itoa函数的实现
- UVA 11584 划分回文串
- 使用AsyncTask自定义图片加载类
- Rxjava2源码分析(一):Flowable的创建和基本使用过程分析
- 利用HashSet对数组去重
- 泊松融合(Poisson blend)
- android 自定义相机Camera2
- 优雅自定义轮播图
- MyEclipse反编译Class文件的实现
- 关于cloudstack中遇见的一些问题处理笔记
- java获取文件大小