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解析类

  • 相关阅读:
    uni-app在小程序开发者工具:TypeError: Cannot read property ‘forceUpdate‘ of undefined
    windows部署多个tomcat并添加到服务开机自动启动
    区域填充算法和多边形填充的扫描线算法[转]
    如何在不规则多边形内均匀撒点的算法[转]
    基于Living Atlas数据为木里山体滑坡敏感性建模【转】
    重磅!前端开发技术之Vue架构知识分享[转]
    如何使用 IAM 策略授予对特定 AWS S3 文件夹的用户特定访问权限?
    XXL-JOB安装、配置、启动、停止教程
    centos7 部署YApi
    CentOS 7安装MySQL8.0
  • 原文地址:https://www.cnblogs.com/leshen/p/7367492.html
Copyright © 2011-2022 走看看