zoukankan      html  css  js  c++  java
  • 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;
        }
    }

    以上是适配器

     1 public class MyAppliction extends Application{
     2     @Override
     3     public void onCreate() {
     4         super.onCreate();
     5 //        String s = Environment.getExternalStorageDirectory() + "/qqq";
     6 //        File file=new File(s);
     7         ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this)
     8                 .threadPriority(100)
     9                 .threadPoolSize(3)
    10                 .memoryCacheExtraOptions(200,200)
    11                 .memoryCacheSize(2*1024*1024)
    12 //                .diskCache(new UnlimitedDiskCache(file))
    13                 .diskCacheSize(50*1024*1024)
    14                 .diskCacheFileNameGenerator(new Md5FileNameGenerator())
    15                 .build();
    16         ImageLoader.getInstance().init(config);
    17 
    18     }
    19     public static DisplayImageOptions getDiskImageoptoins(){
    20         DisplayImageOptions options=new DisplayImageOptions.Builder()
    21                 .showImageForEmptyUri(R.mipmap.ic_launcher)
    22                 .showImageOnFail(R.mipmap.ic_launcher)
    23                 .showImageOnLoading(R.mipmap.ic_launcher)
    24                 .cacheInMemory(true)
    25 //                .cacheOnDisk(true)
    26                 .build();
    27                 return options;
    28     }
    29 }

    以上是固定Imageloader类

     1  public static String readFromNetWork(InputStream is){
     2 
     3 
     4         try {
     5 
     6             ByteArrayOutputStream baos = new ByteArrayOutputStream();
     7 
     8             byte[] buffer = new byte[1024];
     9             int len = 0;
    10             while ((len = is.read(buffer)) != -1){
    11 
    12                 baos.write(buffer,0,len);
    13 
    14             }
    15 
    16             is.close();
    17             baos.close();
    18             return baos.toString();
    19 
    20         } catch (Exception e) {
    21             e.printStackTrace();
    22         }
    23 
    24         return null;
    25 
    26     }

    以上是gson解析类

  • 相关阅读:
    【实践】腾讯云服务器发布项目
    【实践】jdbc批量插入数据
    【转载】jQuery Validate 菜鸟教程
    【转载】jQuery Validate验证框架 + CKEditor 无法验证问题的解决方法
    【实践】获取CKEditor的html文本、纯文本、被选中的内容及赋值
    CKEDITOR的内容js转码,C#控制器解码接收
    jQuery.qrcode生成二维码
    一个表中的两列与另一个表的一列关联的结果显示
    【转载】海明码求解公式规律(转载自计算机网络高分笔记)
    『实践』百度地图同时显示多个路书
  • 原文地址:https://www.cnblogs.com/leshen/p/7367492.html
Copyright © 2011-2022 走看看