解析json图片

原创 2016年06月01日 19:44:19

public class MyPagerAdapter extends PagerAdapter {
    public Context context;
    public List<Item> list;
    
    public MyPagerAdapter(Context context, List<Item> list){
        this.context=context;
        this.list=list;        
    }
    
    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        // TODO Auto-generated method stub
        View v = View.inflate(context, R.layout.itempage, null);
        ImageView imagepage = (ImageView)v.findViewById(R.id.imagepage);
        BitmapUtils bit=new BitmapUtils(context);
        bit.display(imagepage,list.get(position%list.size()).img);
        container.addView(v);
        return v;
    }
    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        container.removeView((View) object);
    }
    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0==arg1;
    }

}

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



public class MainActivity extends FragmentActivity implements OnClickListener{
    private ViewPager page;
    private LinearLayout line;
    private List<ImageView> str;
    List<Item> list;
    private List<Fragment> listfragment;
    private ViewPager page2;
    private Button but1;
    private Button but2;
    private Button but3;
    private Button but4;
    List<Button> listButton;
    String path="http://172.17.29.120/localuser/ljy/shoptest/commodity.json";
    Handler han=new Handler(){
        public void handleMessage(android.os.Message msg){
            Bean[] bean = (Bean[])msg.obj;
            for (Bean bean2 : bean) {
                list = bean2.item;
            }
            page.setAdapter(new MyPagerAdapter(MainActivity.this,list));
            initData();
            setchge();
        };
    };    
    Handler han1=new Handler(){
        public void handleMessage(Message msg) {
            int item = page.getCurrentItem();
            item++;
            page.setCurrentItem(item);
            han1.sendEmptyMessageDelayed(0, 2000);
        };
    };
        
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //寻找控件
        getText1();
        //注册监听
        getonclick();
        //开启线程解析数据
        getThread();
        getData();
        page2.setAdapter(new MypageAdapter2(getSupportFragmentManager(), listfragment));
        listButton=new ArrayList<Button>();
        listButton.add(but1);
        listButton.add(but2);
        listButton.add(but3);
        listButton.add(but4);
        page2.setOnPageChangeListener(new OnPageChangeListener() {
            
            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub
                for (int i = 0; i < listButton.size(); i++) {
                    if(i==arg0){
                        listButton.get(i).setTextColor(Color.RED);
                    }else{
                        listButton.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
                
            }
        });
    }
    private void getThread() {
        new Thread(){
            public void run() {
                getJson();
            };
        }.start();
    }
    private void getText1(){
        page = (ViewPager)findViewById(R.id.page);
        page2 = (ViewPager)findViewById(R.id.page2);
        line = (LinearLayout)findViewById(R.id.line);
        but1 = (Button)findViewById(R.id.but1);
        but2 = (Button)findViewById(R.id.but2);
        but3 = (Button)findViewById(R.id.but3);
        but4 = (Button)findViewById(R.id.but4);
    }
    private void getonclick() {
        but1.setOnClickListener(this);
        but2.setOnClickListener(this);
        but3.setOnClickListener(this);
        but4.setOnClickListener(this);
    }
    public void getData(){
        listfragment = new ArrayList<Fragment>();
        listfragment.add(new F1());
        listfragment.add(new F2());
        listfragment.add(new F3());
        listfragment.add(new F4());
    }
    
    @SuppressLint("NewApi")
    private void initData() {
        str = new ArrayList<ImageView>();
        str.clear();
        line.removeAllViews();
        // TODO Auto-generated method stub
        for (int i = 0; i <list.size(); i++) {
            ImageView imag=new ImageView(MainActivity.this);
            if(i==0){
                imag.setImageResource(R.drawable.dra);
            }else{
                imag.setImageResource(R.drawable.dra2);
            }
            LayoutParams params=new LayoutParams(15, 15);
            params.setMargins(5, 0, 5, 0);
            str.add(imag);
            line.addView(imag,params);
        }
    }
    private void setchge() {
        // 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 < str.size(); i++) {
                    if(i==arg0%list.size()){
                        str.get(i).setImageResource(R.drawable.dra);
                    }else{
                        str.get(i).setImageResource(R.drawable.dra2);
                    }
                }
            }
            @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
                
            }
        });
        han1.sendEmptyMessageDelayed(0, 2000);
    }

    private void getJson() {
        // TODO Auto-generated method stub
        try {
            HttpClient http=new DefaultHttpClient();
            HttpGet get = new HttpGet(path);
            HttpResponse execute = http.execute(get);
            HttpEntity entity = execute.getEntity();
            String json = EntityUtils.toString(entity, "gbk");
            Gson gson=new Gson();
            Bean[] bean = gson.fromJson(json, Bean[].class);
            Message msg=Message.obtain();
            msg.obj=bean;
            han.sendMessage(msg);
            
        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch (arg0.getId()) {
        case R.id.but1:
            page2.setCurrentItem(0);
            break;
        case R.id.but2:
            page2.setCurrentItem(1);
            break;
        case R.id.but3:
            page2.setCurrentItem(2);
            break;
        case R.id.but4:
            page2.setCurrentItem(3);
            break;
        default:
            break;
        }
    }

    

}


相关文章推荐

Json解析获取网络图片

  • 2013年01月14日 14:54
  • 935KB
  • 下载

JSON 解析异步加载图片 listview显示

  • 2013年10月14日 21:19
  • 1.52MB
  • 下载

Android异步加载访问网络图片-解析json

来自:http://www.imooc.com/video/7871 推荐大家去学习这个视频,讲解的很不错。 慕课网提供了一个json网址可以用来学习:http://www.imooc.com/a...
  • hnyzwtf
  • hnyzwtf
  • 2016年01月23日 23:05
  • 4476

使用ListView和AsyncTask、fastjson解析Json以及适配器BaseAdapter来实现下载网络的图片以及文字并显示出来

代码如下: package com.example.test4_listview; import java.io.ByteArrayOutputStream; import java.io....

前端,json解析插件 ,图片弹窗插件

json插件网址 http://www.json.org/ json插件github地址(这两个是一个插件) https://github.com/douglascrockford/JSON-js ...
  • Donzch
  • Donzch
  • 2017年10月26日 10:20
  • 99

解析Json数据并缓存图片到sdcard

需求: 1、解析Json数据并按照指定的控件格式显示在Activity中。 2、把解析出来的图片缓存到sdcard,再次加载时,判断sdcard中是否有该文件,有的话就直接读取本地文件,否则就从网...

extjs 上传文件或是图片后返回json解析错误

最近在用到extjs向后台服务器上传图片时,遇到一个让自己头疼了好几天的问题。   问题是这样的,当我用ext的ajax  下面这段代码 是我定义的一个表单面板,用来上传图片用。 var ...
  • hlj184
  • hlj184
  • 2016年02月01日 15:09
  • 888

Google官方网络框架-Volley的使用解析Json以及加载网络图片方法

Goole官方网络框架-Volley的使用解析Json以及加载网络图片方法 Volley是什么? Google I/O 大会上,Google 推出 Volley的一个网络框架 Volley适合什么...

【Android学习笔记系列】AsyncTask、BaseAdapter整合异步加载用例(通过解析JSON格式数据加载网络图片内容)

什么是异步加载 异步加载就是用异步的方式去加载数据,也就是用非主线程去加载数据的意思 为什么要异步加载 原因大概有两个: 第一、  为了提高用户体验,让用户加载数据的时候不会感到明显的卡顿...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:解析json图片
举报原因:
原因补充:

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