天天看点

网络请求 + imageloader

网络请求 + imageloader

//异步任务

class MyTask extends AsyncTask<String, Integer, String> {

        @Override

        protected String doInBackground(String... params) {

            //从网络获取数据

            try {

                URL url = new URL(params[0]);

                System.out.println(params[0]+" llllllllll");

                HttpURLConnection connection = (HttpURLConnection) url.openConnection();

                int code = connection.getResponseCode();

                if (code == 200) {

                    InputStream inputStream = connection.getInputStream();

                    String str;

                    StringBuilder builder = new StringBuilder();

                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

                    while ((str = reader.readLine()) != null) {

                        builder.append(str);

                    }

                    return builder.toString();

                }

            } catch (Exception e) {

                e.printStackTrace();

            }

            return null;

        }

//更新UI

        @Override

        protected void onPostExecute(String s) {

            super.onPostExecute(s);

            //获取请求的数据

            if (s != null) {

                Gson gson = new Gson();

                DataBean bean = gson.fromJson(s, DataBean.class);

                if (bean != null) {

                  list  = bean.data;

                    if(list!=null){

                    MyAdapter adapter=new MyAdapter(MainActivity.this,list);

                    mylist.setAdapter(adapter);}

                }

            }

        }

    }

//ImageLoaderConfiguration:

是针对图片缓存的全局配置,主要有线程类、缓存大小、磁盘大小、图片下载与解析、日志方面的配置

getInstance()

得到ImageLoader的单例。通过双层是否为 null 判断提高性能

init(ImageLoaderConfiguration configuration)

初始化配置参数,参数configuration为ImageLoader的配置信息,包括图片最大尺寸、任务线程池、磁盘缓存、下载器、解码器等等。

实现中会初始化ImageLoaderEngine engine属性,该属性为任务分发器。

 protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //设置初始化;

        ImageLoaderConfiguration configuration=ImageLoaderConfiguration.createDefault(MainActivity.this);

        ImageLoader.getInstance().init(configuration);

        initView();

        String url = "http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0";

        MyTask task = new MyTask();

        task.execute(url);

//传值

     mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {

    @Override

    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        Intent intent=new Intent(MainActivity.this,DetailActivity.class);

        DataBean.ResultBean bean=list.get(position);//(DataBean.ResultBean)parent.getAdapter().getItem(position);

        intent.putExtra("img",bean.IMAGEURL);

        intent.putExtra("title",bean.TITLE);

        intent.putExtra("subtitle",bean.SUBTITLE);

        intent.putExtra("time",bean.SHOWTIME);

        intent.putExtra("name",bean.FROMNAME);

        startActivity(intent);

//跳转之后接值

 @Override

    public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {

        super.onCreate(savedInstanceState, persistentState);

        setContentView(R.layout.detail_layout);

        initView();

        Intent intent=getIntent();

        String url=intent.getStringExtra("img");

        String title=intent.getStringExtra("title");

        String subtitle=intent.getStringExtra("subtitle");

        String time=intent.getStringExtra("time");

        String name=intent.getStringExtra("name");

        ImageLoader.getInstance().displayImage(url,detail_img);

        detail_name.setText(name);

        detail_title.setText(title);

        detail_subtitle.setText(subtitle);

        detail_time.setText(time);

继续阅读