Bitmap 的图片加载
来源:互联网 发布:爱情电影推荐知乎 编辑:程序博客网 时间:2024/06/03 23:50
private List<Result.DataBean> data;
private Context context;
private DisplayImageOptions options;
public MyLvAdapter(List<Result.DataBean> data, Context context) {
this.data = data;
this.context = context;
//第二步
options=new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.build();
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view==null){
view=View.inflate(context, R.layout.item,null);
holder=new ViewHolder();
holder.img=view.findViewById(R.id.img);
holder.tvTitle=view.findViewById(R.id.tv_title);
holder.tvPrice=view.findViewById(R.id.tv_price);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tvTitle.setText(data.get(i).getTitle());
holder.tvPrice.setText("¥"+data.get(i).getPrice());
//分隔字符串
String picPath=data.get(i).getImages();
Log.d("zzz",picPath);
//竖线在正则表达式中是特殊字符,需要转义,也就是("\|"),
//右斜杠也是特殊字符,也需要转义,则应该是("\\|")
String[] pics = picPath.split("\\|");
Log.d("zzz",pics[0]);
// MyPicTask task=new MyPicTask(holder.img);
// task.execute(pics[0]);
//第三步:加载图片
ImageLoader.getInstance().displayImage(pics[0],holder.img,options);
return view;
}
class ViewHolder{
ImageView img;
TextView tvTitle;
TextView tvPrice;
}
class MyPicTask extends AsyncTask<String,Void,Bitmap>{
private ImageView img;
public MyPicTask(ImageView img) {
this.img = img;
}
@Override
protected Bitmap doInBackground(String... strings) {
try {
URL url=new URL(strings[0]);
HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setReadTimeout(5000);
urlConnection.setConnectTimeout(5000);
if(urlConnection.getResponseCode()==200) {
InputStream inputStream = urlConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
img.setImageBitmap(bitmap);
}
}
}
private Context context;
private DisplayImageOptions options;
public MyLvAdapter(List<Result.DataBean> data, Context context) {
this.data = data;
this.context = context;
//第二步
options=new DisplayImageOptions.Builder()
.cacheInMemory(true)//使用内存缓存
.cacheOnDisk(true)//使用磁盘缓存
.showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
.showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
.showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
.bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
.imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
.build();
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view==null){
view=View.inflate(context, R.layout.item,null);
holder=new ViewHolder();
holder.img=view.findViewById(R.id.img);
holder.tvTitle=view.findViewById(R.id.tv_title);
holder.tvPrice=view.findViewById(R.id.tv_price);
view.setTag(holder);
}else{
holder=(ViewHolder) view.getTag();
}
holder.tvTitle.setText(data.get(i).getTitle());
holder.tvPrice.setText("¥"+data.get(i).getPrice());
//分隔字符串
String picPath=data.get(i).getImages();
Log.d("zzz",picPath);
//竖线在正则表达式中是特殊字符,需要转义,也就是("\|"),
//右斜杠也是特殊字符,也需要转义,则应该是("\\|")
String[] pics = picPath.split("\\|");
Log.d("zzz",pics[0]);
// MyPicTask task=new MyPicTask(holder.img);
// task.execute(pics[0]);
//第三步:加载图片
ImageLoader.getInstance().displayImage(pics[0],holder.img,options);
return view;
}
class ViewHolder{
ImageView img;
TextView tvTitle;
TextView tvPrice;
}
class MyPicTask extends AsyncTask<String,Void,Bitmap>{
private ImageView img;
public MyPicTask(ImageView img) {
this.img = img;
}
@Override
protected Bitmap doInBackground(String... strings) {
try {
URL url=new URL(strings[0]);
HttpURLConnection urlConnection =(HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setReadTimeout(5000);
urlConnection.setConnectTimeout(5000);
if(urlConnection.getResponseCode()==200) {
InputStream inputStream = urlConnection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Bitmap bitmap) {
super.onPostExecute(bitmap);
img.setImageBitmap(bitmap);
}
}
}
阅读全文
0 0
- Bitmap 的图片加载
- Bitmap高效加载图片
- Bitmap 高效加载图片
- 异步加载bitmap图片
- Bitmap 图片异步加载
- 高效的加载图片1.缩放大容量的Bitmap
- 高效的加载大分辨率的图片 bitmap
- Bitmap如何高效加载图片
- Bitmap异步加载网络图片
- 关于bitmap加载图片产生OOM的一个解决方案
- android simpledraweeview 获取已经加载的图片bitmap
- Android 整理BitMap的加载和图片缓存
- MFC图片控件静态加载bitmap图片
- 大Bitmap的加载
- 大Bitmap的加载
- Bitmap的高效加载
- Bitmap的高效加载
- Bitmap的高效加载
- 【Scikit-Learn 中文文档】监督学习:从高维观察预测输出变量
- 数据结构实验之图论九:最小生成树
- _NSFC... 类型错误
- Jdbc工具类
- 如何用 CSS 网格快速做出网站原型
- Bitmap 的图片加载
- 一对一和一对多的关联查询(该实体类中存在实体类属性和实体类集合属性,将关联的实体类详细信息查询出来,但没有查询所有该实体类信息)
- centos安装python3.6.3,pip
- 导航栏渐变方案三:隐藏
- 深度学习总结(四)——正则项系数、Batch_size设置
- 1.3存储器寻址
- BZOJ4070: [Apio2015]雅加达的摩天楼
- 什么是DSP
- Android游戏开发+实战开发教程视频