SeekBar

来源:互联网 发布:软件开发 外包 杭州 编辑:程序博客网 时间:2024/05/01 02:28

//MainActivity

public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener, SeekBar.OnSeekBarChangeListener {    private String url="http://www.quanmin.tv/json/categories/lol/list.json";    private XListView xlvx;    private MyAdapter ma;    private int nofify=0;    private ViewPager vp;    private MyPagerAdapter map;    private int pro=0;    private SeekBar sb;    private List<Mybean> mblist=new ArrayList<>();    private List<Mybeanone> molist=new ArrayList<>();    private List<Mybean> newlist;    //定义Handler,用于轮播使用    private Handler handler=new Handler(){        @Override        public void handleMessage(Message msg) {            super.handleMessage(msg);            int currentItem = vp.getCurrentItem();            currentItem++;            vp.setCurrentItem(currentItem);        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //获取控件        initView();        //SeekBar的监听方法        initproger();        //AsyncTask异步        new MyAsyncTask().execute(url);        //定时操作        initTime();    }    private void initproger() {        sb.setOnSeekBarChangeListener(this);    }    private void initTime() {        Timer timer=new Timer();        TimerTask task=new TimerTask() {            @Override            public void run() {                handler.sendEmptyMessage(0);            }        };        timer.schedule(task,2000,2000);    }    /**     * 获取控件的类     * 用于获取工程需要的控件     */    private void initView() {        View view=View.inflate(MainActivity.this,R.layout.itempage,null);        View vieww=View.inflate(MainActivity.this,R.layout.itemtou,null);        vp=view.findViewById(R.id.vp_page);        xlvx= (XListView) findViewById(R.id.lv_xlv);        sb= (SeekBar) findViewById(R.id.mprogress);        sb.setMax(100);        xlvx.addHeaderView(view);        xlvx.addHeaderView(vieww);        xlvx.setXListViewListener(this);        xlvx.setPullLoadEnable(true);    }    @Override    public void onProgressChanged(SeekBar seekBar, final int mmm, boolean b) {        sb.setProgress(mmm);    }    @Override    public void onStartTrackingTouch(SeekBar seekBar) {    }    @Override    public void onStopTrackingTouch(SeekBar seekBar) {    }    /**     * AsyncTask异步类     * 用于实现网络请求数据以及XlistView的展示操作     */    class MyAsyncTask extends AsyncTask<String,Integer,String>{        @Override        protected String doInBackground(String... strings) {            String result=null;            try {                URL murl=new URL(strings[0]);                HttpURLConnection connection= (HttpURLConnection) murl.openConnection();                connection.connect();                int zg=connection.getContentLength();                int mk=0;                if(200==connection.getResponseCode()){                    InputStream ins = connection.getInputStream();                    int length=0;                    byte[] arr=new byte[1024];                    ByteArrayOutputStream baos = new ByteArrayOutputStream();                    while((length=ins.read(arr))!=-1){                        baos.write(arr,0,length);                        int kkk=length;                        mk=(kkk/zg)*100;                        publishProgress(mk);                    }                    result=baos.toString();                    return  result;                }            } catch (Exception e) {                e.printStackTrace();            }            return null;        }        @Override        protected void onProgressUpdate(Integer... values) {            super.onProgressUpdate(values);           pro=values[0];        }        @Override        protected void onPostExecute(String s) {           sb.setVisibility(View.GONE);            super.onPostExecute(s);            System.out.println("网络请求的字段____"+s);            JSONjie(s);        }    }    //解析操作    private void JSONjie(String s) {        try {            JSONObject obj = new JSONObject(s);            JSONArray data = obj.getJSONArray("data");            if(data!=null&& data.length()>0){                for (int i = 0; i <data.length() ; i++) {                    JSONObject js = data.getJSONObject(i);                    Mybean mb=new Mybean();                    mb.nick=js.getString("nick");                    mb.title=js.getString("title");                    mb.shuffimg=js.optString("app_shuffling_image");                    mblist.add(mb);                }            }            if(mblist!=null){                for (int i = 0; i <4; i++) {                    Mybeanone mo=new Mybeanone();                    mo.pic=mblist.get(i).shuffimg;                    molist.add(mo);                }                System.out.println("_______"+molist.size());                map=new MyPagerAdapter();                vp.setAdapter(map);                setDate();            }        } catch (Exception e) {            e.printStackTrace();        }    }    private void setDate() {        newlist=new ArrayList<>();        for (int i = 0; i <nofify+10; i++) {            newlist.add(mblist.get(i));        }        nofify+=10;        ma=new MyAdapter(MainActivity.this,newlist);        xlvx.setAdapter(ma);        xlvx.stopLoadMore();        xlvx.stopRefresh();    }   //刷新数据    @Override    public void onRefresh() {        new MyAsyncTask().execute(url);        Toast.makeText(MainActivity.this,"刷新完毕",Toast.LENGTH_SHORT).show();     xlvx.stopRefresh();    }    //加载数据    @Override    public void onLoadMore() {        if(nofify+10<=mblist.size()){            for (int i =nofify; i <nofify+10; i++) {                newlist.add(mblist.get(i));                Toast.makeText(MainActivity.this,"刷新完毕",Toast.LENGTH_SHORT).show();            }            nofify++;        }else{            Toast.makeText(MainActivity.this,"已没有更多",Toast.LENGTH_SHORT).show();        }        xlvx.stopLoadMore();    }    //ViewPager用到的适配器    class MyPagerAdapter extends PagerAdapter{        @Override        public int getCount() {            return Integer.MAX_VALUE;        }        @Override        public boolean isViewFromObject(View view, Object object) {            return view==object;        }        @Override        public Object instantiateItem(ViewGroup container, int position) {            View view=View.inflate(MainActivity.this,R.layout.imtepaimg,null);            ImageView paimg=view.findViewById(R.id.iv_imgpa);            ImageLoader.getInstance().displayImage(molist.get(position%molist.size()).pic,paimg);            container.addView(view);            return view;        }        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView((View)object);        }    }}
//Myapp

public class MyApp extends Application{    @Override    public void onCreate() {        super.onCreate();        DisplayImageOptions options=new DisplayImageOptions.Builder().build();        ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this)                .defaultDisplayImageOptions(options)                .build();        ImageLoader.getInstance().init(config);    }}
//Adapter

public class MyAdapter extends BaseAdapter{    private Context context;    private List<Mybean> list;    private final int typea=0;    private final int typeb=1;    public MyAdapter(Context context, List<Mybean> list) {        this.context = context;        this.list = list;    }    @Override    public int getCount() {        return list.size();    }    @Override    public Object getItem(int i) {        return null;    }    @Override    public long getItemId(int i) {        return 0;    }    @Override    public int getItemViewType(int position) {       if(position%2==0){           return typea;       }else{           return typeb;       }    }//定义多种布局    @Override    public int getViewTypeCount() {        return 2;    }    /**     * getView类     *  对条目进行判断,实现多条目展示     */    @Override    public View getView(int i, View view, ViewGroup viewGroup) {        int type = getItemViewType(i);        ViewHolder holder=null;        ViewHolder2 holder2=null;        if(view==null){        switch (type){            case typea:                    holder=new ViewHolder();                    view=View.inflate(context, R.layout.item,null);                    holder.mnick=view.findViewById(R.id.tv_nick);                    holder.mtitle=view.findViewById(R.id.tv_title);                    holder.mivshu=view.findViewById(R.id.iv_imgx);                    view.setTag(holder);                break;            case typeb:                holder2=new ViewHolder2();                view=View.inflate(context, R.layout.itemtwo,null);                holder2.mnick2=view.findViewById(R.id.tv_nickt);                holder2.mtitle2=view.findViewById(R.id.tv_titlet);                holder2.mivshu2=view.findViewById(R.id.ivvv);                view.setTag(holder2);                break;        }        }        else{            switch (type){                case  typea:                    holder= (ViewHolder) view.getTag();                    break;                case  typeb:                    holder2= (ViewHolder2) view.getTag();                    break;            }        }        switch (type){            case typea:                holder.mnick.setText(list.get(i).nick);                holder.mtitle.setText(list.get(i).title);                ImageLoader.getInstance().displayImage(list.get(i).shuffimg,holder.mivshu);                break;            case   typeb:                holder2.mnick2.setText(list.get(i).nick);                holder2.mtitle2.setText(list.get(i).title);                ImageLoader.getInstance().displayImage(list.get(i).shuffimg,holder2.mivshu2);                break;        }        return view;    }    /**     * 优化用到的类     * 用于优化使用     */    class ViewHolder {        public TextView mnick;        public TextView mtitle;        public ImageView mivshu;    }    class ViewHolder2 {        public TextView mnick2;        public TextView mtitle2;        public ImageView mivshu2;    }}
//Bean

public class Mybean {    public String nick;    public String shuffimg;    public String title;}
public class Mybeanone {    public String pic;}

原创粉丝点击