public class MFragment1 extends Fragment{ private View view; private ViewPager vvp; List<User.DataBean.ComicsBean> list = new ArrayList<>(); private ListView xl; private Madapter adapter; private MM mm; private ArrayList<ImageView> ivList; private ImageView iv; private LinearLayout ll; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view=inflater.inflate(R.layout.f1,container,false); vvp=(ViewPager)view.findViewById(R.id.vvp); xl=(ListView)view.findViewById(R.id.xl); ll = (LinearLayout) view.findViewById(R.id.ll); return view; } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what==1){ int position = vvp.getCurrentItem(); //让当前的的viewpager加1 position++; //给viewPager设置当前的索引 vvp.setCurrentItem(position); handler.sendEmptyMessageDelayed(1, 5000); } } }; private void initData() { new MAsyncTask().execute("http://api.kkmh.com/v1/daily/comic_lists/0?since=0&gender=0&sa_event=eyJwcm9qZWN0Ijoia3VhaWthbl9hcHAiLCJ0aW1lIjoxNDg3NzQyMjQwNjE1LCJwcm9wZXJ0aWVzIjp7IkhvbWVwYWdlVGFiTmFtZSI6IueDremXqCIsIlZDb21tdW5pdHlUYWJOYW1lIjoi54Ot6ZeoIiwiJG9zX3ZlcnNpb24iOiI0LjQuMiIsIkdlbmRlclR5cGUiOiLlpbPniYgiLCJGcm9tSG9tZXBhZ2VUYWJOYW1lIjoi54Ot6ZeoIiwiJGxpYl92ZXJzaW9uIjoiMS42LjEzIiwiJG5ldHdvcmtfdHlwZSI6IldJRkkiLCIkd2lmaSI6dHJ1ZSwiJG1hbnVmYWN0dXJlciI6ImJpZ25veCIsIkZyb21Ib21lcGFnZVVwZGF0ZURhdGUiOjAsIiRzY3JlZW5faGVpZ2h0IjoxMjgwLCJIb21lcGFnZVVwZGF0ZURhdGUiOjAsIlByb3BlcnR5RXZlbnQiOiJSZWFkSG9tZVBhZ2UiLCJGaW5kVGFiTmFtZSI6IuaOqOiNkCIsImFidGVzdF9ncm91cCI6MTEsIiRzY3JlZW5fd2lkdGgiOjcyMCwiJG9zIjoiQW5kcm9pZCIsIlRyaWdnZXJQYWdlIjoiSG9tZVBhZ2UiLCIkY2FycmllciI6IkNoaW5hIE1vYmlsZSIsIiRtb2RlbCI6IlZQaG9uZSIsIiRhcHBfdmVyc2lvbiI6IjMuNi4yIn0sInR5cGUiOiJ0cmFjayIsImRpc3RpbmN0X2lkIjoiQTo2YWRkYzdhZTQ1MjUwMzY1Iiwib3JpZ2luYWxfaWQiOiJBOjZhZGRjN2FlNDUyNTAzNjUiLCJldmVudCI6IlJlYWRIb21lUGFnZSJ9"); } class MAsyncTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... strings) { return new NewWorkUtil().getJson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); User user = gson.fromJson(s, User.class); list = user.getData().getComics(); xl.setAdapter(mm); vvp.setAdapter(adapter); vvp.setCurrentItem(100000); initDot(); handler.sendEmptyMessageDelayed(1, 5000); ViewPagerListener(); } } private void ViewPagerListener() { vvp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int x = 0; x < ivList.size(); x++) { if (position % list.size() == x) { //证明点和图片是对应的,应该点是变红的 ivList.get(position % list.size()).setImageResource(R.drawable.red); } else { ivList.get(x).setImageResource(R.drawable.blue); } } } @Override public void onPageScrollStateChanged(int state) { } }); } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initData(); adapter = new Madapter(); mm = new MM(); } class Madapter extends PagerAdapter { @Override public int getCount() { return Integer.MAX_VALUE; } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } @Override public Object instantiateItem(ViewGroup container, int position) { ImageView iv = new ImageView(getActivity()); //对图片进行缩放 iv.setScaleType(ImageView.ScaleType.FIT_XY); //9 9%4 1 10%4 2 ImageLoader.getInstance().displayImage(list.get(position%list.size()).getCover_image_url(),iv); container.addView(iv); return iv; } } class MM extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder vh; if(view==null){ vh=new ViewHolder(); view=View.inflate(getActivity(),R.layout.xl,null); vh.img=(ImageView)view.findViewById(R.id.img); vh.tv=(TextView)view.findViewById(R.id.tv); view.setTag(vh); }else{ vh= (ViewHolder) view.getTag(); } ImageLoader.getInstance().displayImage(list.get(i).getCover_image_url(),vh.img); vh.tv.setText(list.get(i).getTitle()); return view; } } class ViewHolder{ ImageView img; TextView tv; } private void initDot() { ivList = new ArrayList<>(); if (ivList != null) { ivList.clear(); } for (int x = 0; x < list.size(); x++) { iv = new ImageView(getActivity()); if (x == 0) { //第一张,让其圆点进行选中状态 iv.setImageResource(R.drawable.red); } else { iv.setImageResource(R.drawable.blue); //其它的都不选中 } LinearLayout.LayoutParams parmes = new LinearLayout.LayoutParams(20, 20); //设置两个点之间的距离 parmes.setMargins(10, 0, 10, 0); ll.addView(iv, parmes); ivList.add(iv); } } }
08-30