ImageLoader_显示图片
public class MainActivity extends AppCompatActivity { private ListView lv;
private List<Bean.ResultBean.DataBean> list; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listview);
try {
// jiexi("http://apis.juhe.cn/cook/query?key=900eb2e99f3c7b21f3914aefa914a327&menu="+ URLEncoder.encode("西红柿","utf-8")+"" );
jiexi("http://apis.juhe.cn/cook/query?key=900eb2e99f3c7b21f3914aefa914a327&menu=%E8%A5%BF%E7%BA%A2%E6%9F%BF");
} catch (Exception e) {
e.printStackTrace();
}
}
public void jiexi(final String path){
new AsyncTask<String ,Void ,String >(){
@Override
protected void onPostExecute(String s) { if (s!=null){
Gson gson=new Gson();
Bean bean = gson.fromJson(s, Bean.class);
List<Bean.ResultBean.DataBean> list = bean.getResult().getData();
MyBaseadapter adapter=new MyBaseadapter(MainActivity.this,list);
lv.setAdapter(adapter);
}
} @Override
protected String doInBackground(String... params) {
try {
URL url=new URL(params[0]);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setReadTimeout(3000);
connection.setConnectTimeout(3000);
int code = connection.getResponseCode();
if (code==200){
InputStream is = connection.getInputStream();
return StreamTools.readFromNetWork(is); }
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path);
}
}
以上是MainActivity里面的内容
public class MyBaseadapter extends BaseAdapter {
private Context context;
private List<Bean.ResultBean.DataBean> list;
public MyBaseadapter(Context context, List<Bean.ResultBean.DataBean> list) {
this.context=context;
this.list=list;
} @Override
public int getCount() {
return list!=null?list.size():0;
} @Override
public Object getItem(int position) {
return list.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView=View.inflate(context,R.layout.item,null);
TextView tv= (TextView) convertView.findViewById(R.id.tv);
ImageView image= (ImageView) convertView.findViewById(R.id.image);
//ImageLoader.getInstance().displayImage(dataBeanList.get(position).getAlbums().get(0),
// ivIcon,MyApplication.getDisplayImageOptions());
tv.setText(list.get(position).getSteps().get(0).getStep());
ImageLoader.getInstance().displayImage(list.get(position).getSteps().get(0).getImg(),image,MyAppliction.getDiskImageoptoins());
return convertView;
}
}
以上是适配器
public class MyAppliction extends Application{
@Override
public void onCreate() {
super.onCreate();
// String s = Environment.getExternalStorageDirectory() + "/qqq";
// File file=new File(s);
ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this)
.threadPriority(100)
.threadPoolSize(3)
.memoryCacheExtraOptions(200,200)
.memoryCacheSize(2*1024*1024)
// .diskCache(new UnlimitedDiskCache(file))
.diskCacheSize(50*1024*1024)
.diskCacheFileNameGenerator(new Md5FileNameGenerator())
.build();
ImageLoader.getInstance().init(config); }
public static DisplayImageOptions getDiskImageoptoins(){
DisplayImageOptions options=new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.mipmap.ic_launcher)
.showImageOnFail(R.mipmap.ic_launcher)
.showImageOnLoading(R.mipmap.ic_launcher)
.cacheInMemory(true)
// .cacheOnDisk(true)
.build();
return options;
}
}
以上是固定Imageloader类
public static String readFromNetWork(InputStream is){ try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1){ baos.write(buffer,0,len); } is.close();
baos.close();
return baos.toString(); } catch (Exception e) {
e.printStackTrace();
} return null; }
以上是gson解析类
ImageLoader_显示图片的更多相关文章
- img只显示图片一部分 或 css设置背景图片只显示图片指定区域
17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左 ...
- python将图片转换为Framebuffer裸数据格式(终端显示图片)
要在ubuntu终端显示图片或者在板子的LCD显示图片,Framebuffer是一个简单易用的接口,直接写入像素信息即可. 但普通的图片带有头部信息或者编码格式不同,直接送入Framebuffer是显 ...
- Chrome 控制台新玩法-console显示图片以及为文字加样式
有兴趣的同学可以文章最后的代码复制贴到控制台玩玩. Go for Code 在正常模式下,一般只能向console 控制台输出简单的文字信息.但为了把信息输出得更优雅更便于阅读,除了cosole.lo ...
- 如何使用SOIL在VS2012的 C++环境下显示图片
先看下效果. 这是一个很无聊的功能....首先说下,我做这个功能的初衷并不是为了实现在控制台中显示图片...(这貌似很无聊) 而是因为自己想做用C做一个游戏:http://q.cnblogs.com/ ...
- Qt自适应大小显示图片,添加菜单
由于后面的图像处理需要UI,OpenCV自带也不怎么会,MFC实在懒得学的.听同学说Qt不错,就用Qt做UI了. 本文主要介绍三个内容:在Qt Creator中使用OpenCV2.Qt中自适应显示图片 ...
- EmguCV控件Emgu.CV.UI.ImageBox及C# picturebox显示图片连续刷新出现闪烁问题
在上一篇里,EmguCV(OpenCV)实现高效显示汉字及叠加 实现了视频叠加及显示,但存在问题,就是 Emgu.CV.UI.ImageBox及C# picturebox显示图片时都会出现闪烁,尤其 ...
- 显示图片的(自定义)吐司Toast
一般我们提示的时候都是直接提示文字的,其实Toast也可以显示图片 常用方法 Toast.makeText(context,text,duration)这返回一个Toast对象 toast.setDu ...
- python 读取并显示图片的两种方法
在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 matlab. 一.matplotlib 1. ...
- 【OpenCV练习】简单显示图片的代码
今天依照网上的教程尝试了一下最基本的图片显示. 首先想说一下编译时出现的问题,开始时在编译时会出现无法识别cvReleaseImage的情况,是因为没有在配置中包含相应的core的库文件. 加进去就解 ...
随机推荐
- Altium Designer设计PCB--如何设置铺铜与导线或过孔的间距
笑话: 到银行汇款,车临时停路边上. 为了怕交警罚就把朋友留下看车,跟他说有查车的过来了告诉我一声. 进去几分钟果然有交警来了. 那个朋友风风火火地闯进银行大声吼道:“大哥,警察来了,快走啊!” 偌大 ...
- git分支创建与切换
1. 场景描述 新版本迭代上线完成,为了保持当前版本稳定性及可回退等需求,需要切换新的分支用于下一版本的迭代开发. 2. 解决方案 2.1 切换前工作. 因发布上线当天有可能存在临时更改文件而未上传g ...
- 一个内存不能被written的问题
C程序面试中曾经面试过这样一道题: #include <stdio.h> int main() { char *p = "12345"; *p = '6'; print ...
- 使用MyBatis在控制台动态打印执行的sql语句
使用MyBatis进行数据库操作的时候,sql语句都是写在相应的mapper文件中,参数也是使用占位符取值表示的,mapper文件中看不到实时执行的完整sql,有时候sql语句错误或者参数类型不对的时 ...
- 【DFS练习】Pku1950 Dessert-C++
这道题和这道题很类似. 这里还是说一下坑点,因为前一道题'等式'的加数只有9个,但是这道题目最大到了15,所以在选择不加符号的时候需要判断是用100去乘还是用10去乘就可以了. 基本代码稍微把相关的9 ...
- 【原创】一个shell脚本记录(实现rsync生产文件批量迁移功能)
#!/bin/bash #Date:2018-01-08 #Author:xxxxxx #Function:xxxxxx #Change:2018-01-17 # #设置忽略CTRL+C信号 trap ...
- 什么是常量?变量? if语句介绍
1.python 的历史 2004 年 Django 的产生 phyton2与 python3 的区别 Python2:源码不统一,有重复的代码功能 Python3:源码统一,没有有重复的代码功能 2 ...
- 获取文件版本(IE)
GetFileInfoCUIAction::GetFileVersion2GetSystemDirectory WCHAR szConfigFile[MAX_PATH + 1]; ::G ...
- C语言调用VIX_API开关虚拟机
#include <stdio.h> #include <stdlib.h> #include "vix.h" #define USE_WORKSTATIO ...
- [leetcode] 72. Edit Distance (hard)
原题 dp 利用二维数组dp[i][j]存储状态: 从字符串A的0~i位子字符串 到 字符串B的0~j位子字符串,最少需要几步.(每一次删增改都算1步) 所以可得边界状态dp[i][0]=i,dp[0 ...