ImageLoader和MyAsyncTask

原创 2016年06月01日 09:33:50
//ImageLoader需要导包,需要组册;
public class MyApplicationextends Application {
    @Override
    public void onCreate() {
        ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
        ImageLoader.getInstance().init(configuration);
        
    }
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


public class MyAdapter extends BaseAdapter {
    public Context context;
    public List<Info> list;
    public MyAdapter(Context context,List<Info> list){
        this.context=context;
        this.list=list;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return list.size();
    }

    @Override
    public Object getItem(int arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int arg0, View v, ViewGroup arg2) {
        // TODO Auto-generated method stub
        v=View.inflate(context, R.layout.item, null);
        ImageView image = (ImageView)v.findViewById(R.id.image);
        TextView text = (TextView)v.findViewById(R.id.text);
        TextView time = (TextView)v.findViewById(R.id.time);
        ImageLoader.getInstance().displayImage(list.get(arg0).picurl, image);
        text.setText(list.get(arg0).title);
        time.setText(list.get(arg0).uptime);
        return v;
    }

}
//////////////////////////////////////////////////////////////////////////////////////////////////////////


public class MyAsyncTaskextends AsyncTask<String,String,String>{

    private String json;

    protected String doInBackground(String...path) {
        // TODO Auto-generated method stub
        try {
            HttpClient http=new DefaultHttpClient();
            HttpGet get=new HttpGet(path[0]);
            HttpResponse execute = http.execute(get);
            HttpEntity entity = execute.getEntity();
            json = EntityUtils.toString(entity, "gbk");
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return json;
    }

}
/////////////////////////////////////////////////////////////////////////////////////////////////////////


public class F2 extends Fragment{
    String path="http://172.17.29.120/localuser/ljy/ndhx/peixundongtai.json";
    private ListView list_id;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v = View.inflate(getActivity(),R.layout.f1, null);
        list_id = (ListView)v.findViewById(R.id.list_id);
        getJson();
        return v;
    }
    
    private void getJson() {
        try {
            MyAsyncTask my=new MyAsyncTask();
            String json = my.execute(path).get();

            Gson gson=new Gson();
            Bean bean = gson.fromJson(json, Bean.class);
            List<Info> list = bean.info;
            list_id.setAdapter(new MyAdapter(getActivity(), list));
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ExecutionException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


public class MainActivity extends FragmentActivity implements OnClickListener{
    List<Fragment> list=new ArrayList<Fragment>();
    List<Button> list1;
    private ViewPager page;
    private Button but1_id;
    private Button but3_id;
    private Button but2_id;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获得控件
        getDText();
        //注册监听
        getonclic();
        //添加Fragment到集合中
        getAddFragment();
        getButoon();
        //适配器
        getFragment();
        //添加Butoon到集合中
        getpagechange();
    }

    private void getDText() {
        // TODO Auto-generated method stub
        page = (ViewPager)findViewById(R.id.page);
        but1_id=(Button)findViewById(R.id.but1_id);
        but2_id = (Button)findViewById(R.id.but2_id);
        but3_id = (Button)findViewById(R.id.but3_id);
    }

    private void getonclic() {
        // TODO Auto-generated method stub
        but1_id.setOnClickListener(this);
        but2_id.setOnClickListener(this);
        but3_id.setOnClickListener(this);
    }
    
    private void getAddFragment() {
        // TODO Auto-generated method stub
        list.add(new MyFragment());
        list.add(new F2());
        list.add(new F3());
    }
    
    private void getFragment() {
        // TODO Auto-generated method stub
        page.setAdapter(new MyAdapter(getSupportFragmentManager(),list));
    }

    private void getButoon() {
        // TODO Auto-generated method stub
        list1=new ArrayList<Button>();
        list1.add(but1_id);
        list1.add(but2_id);
        list1.add(but3_id);
    }
    private void getpagechange() {
        // TODO Auto-generated method stub
        page.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub

                
                for (int i = 0; i < list1.size(); i++) {
                    if(i==arg0){
                        list1.get(i).setTextColor(Color.RED);
                    }else{
                        list1.get(i).setTextColor(Color.BLACK);
                    }
                }
            }
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
            }
            
            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub
            }
        });
    }    
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch (arg0.getId()) {
        case R.id.but1_id:

            page.setCurrentItem(0);
            break;
        case R.id.but2_id:
            page.setCurrentItem(1);
            break;
        case R.id.but3_id:
            page.setCurrentItem(2);
            break;
        default:
            break;
        }
    }

    
}



记录一下glide与Imageloader的区别。

这里推荐两篇博文。 http://blog.csdn.net/u011228356/article/details/45026431 http://blog.csdn.net/qq_25690935/...
  • yangchengtest
  • yangchengtest
  • 2017年02月25日 12:51
  • 1059

Glide图片加载与ImageLoade其他图片加载的区别

在图片加载库烂大街的今天,选择一个适合自己使用的图片加载库已经成为了每一个Android开发者的必经之路。现在市面上知名的图片加载库有UIL,Picasso,Volley ImageLoader,F...
  • lanxingfeifei
  • lanxingfeifei
  • 2016年06月30日 16:52
  • 2634

Android中AsyncTask基本用法与源码分析(API 23)

Android的UI是线程不安全的,想在子线程中更新UI就必须使用Android的异步操作机制,直接在主线程中更新UI会导致程序崩溃。 Android的异步操作主要有两种,AsyncTask和Han...
  • L664675249
  • L664675249
  • 2016年03月23日 22:01
  • 1752

网络图片加载框架Universal-ImageLoader和Picasso优缺点对比

网络图片加载库的特点及优势 Android 中图片处理的难点: oom内存溢出 图片尺寸和缩略图处理的平衡 网络图片的加载与缓存机制 今天学习两款比较优秀的开源图片处理库框架: Universal-I...
  • wei_chong_chong
  • wei_chong_chong
  • 2016年07月08日 10:37
  • 4340

Picasso, ImageLoader, Fresco, Glide 优劣

Picasso, ImageLoader, Fresco, Glide 优劣 首先看 Fresco, 它的优点是其他几个框架没有的, 或者说是其他几个框架的短板. Fresco: 优点: 1. ...
  • LiuyiFirstTime
  • LiuyiFirstTime
  • 2016年08月24日 16:01
  • 3742

【Android 基础】GridView中使用ImageLoader

演示效果: ImageLoader体验还是不错的。准备工作0)准备demo中展示的图片链接(我用python在新浪某个网页爬下来的图片链接。public class Constants { ...
  • leaf_130
  • leaf_130
  • 2017年01月09日 19:18
  • 316

Android 四大大图片缓存(Imageloader,Picasso,Glide,Fresco)原理、特性对比

四大图片缓存基本信息 Universal ImageLoader 是很早开源的图片缓存,在早期被很多应用使用。   Picasso 是 Square 开源的项目,且他的主导者是 JakeWh...
  • qq_25690935
  • qq_25690935
  • 2016年01月20日 14:51
  • 10309

ImageLoader缓存图片到SD卡+清除缓存

//MyApplication public class MyApplication extends Application { @Override public void on...
  • ZhouZhouSunShine
  • ZhouZhouSunShine
  • 2017年08月16日 09:46
  • 764

ImageLoader----内存缓存篇一

ImageLoader是一个图片缓存的开源库,提供了强大的图片缓存机制,很多开发者都在使用,今天我就和大家一起开始学习这套开源框架。 Imageloader分为二级缓存:内存缓存和本地文件缓...
  • crl7885
  • crl7885
  • 2015年02月19日 15:42
  • 6415

Android中使用ImageLoader加载图片

Android上让人头疼的莫过于从网络上获取图片,然后显示图片,最后还要考虑到图片的回收问题,这之间只要有任何一个环节有问题都可能直接OOM。尤其在需要展示图片的列表页面,会加载大量网络上的图片,每当...
  • csdnzouqi
  • csdnzouqi
  • 2016年09月12日 18:04
  • 2562
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ImageLoader和MyAsyncTask
举报原因:
原因补充:

(最多只允许输入30个字)