public class MainActivity extends AppCompatActivity { private ViewPager viewpager; private RadioGroup rg; List<Bean02> list = new ArrayList<>(); int[] i = {R.id.b1,R.id.b2,R.id.b3,R.id.b4,R.id.b5,R.id.b6}; //Handler实现自动轮播 Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int i = viewpager.getCurrentItem()+1; viewpager.setCurrentItem(i); handler.sendEmptyMessageDelayed(0,2000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取id rg = (RadioGroup)findViewById(R.id.rg); viewpager =(ViewPager)findViewById(R.id.viewpager); //异步请求网络 new Myasynctask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=6&page=1"); //Timer实现自动轮播 // Timer timer = new Timer(); // timer.schedule(new TimerTask() { // @Override // public void run() { // MainActivity.this.runOnUiThread(new Runnable() { // @Override // public void run() { // int i = viewpager.getCurrentItem()+1; // viewpager.setCurrentItem(i); // //非无线轮播需要加判断,如果不加会报错 // //if(i>=list.size()){ // // viewpager.setCurrentItem(0); // //} // } // }); // } // },2000,2000); } //异步请求网络 class Myasynctask extends AsyncTask<String,Void,String>{ private StringBuilder builder; @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int code = urlConnection.getResponseCode(); if(code==200){ InputStream inputStream = urlConnection.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); builder = new StringBuilder(); String s = ""; while((s=reader.readLine())!=null){ builder.append(s); } } } catch (Exception e) { e.printStackTrace(); } return builder.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析 Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); //获取解析数据 List<Bean.NewslistBean> newslist = bean.getNewslist(); //添加到集合中 for (int i=0;i<newslist.size();i++){ list.add(new Bean02(newslist.get(i).getPicUrl(),newslist.get(i).getTitle())); } //给viewpager设置适配器 viewpager.setAdapter(new Mydapter()); viewpager.setCurrentItem(10000*list.size());//无线轮播加这行代码 handler.sendEmptyMessageDelayed(0,2000);//handler实现自动轮播,需要这行代码开启 viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { rg.check(i[position%list.size()]);//无线轮播 //rg.check(i[position]);//普通 } @Override public void onPageSelected(int position) { } @Override public void onPageScrollStateChanged(int state) { } }); } } class Mydapter extends PagerAdapter{ @Override public int getCount() { //return list.size();//普通 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.vp,null); ImageView imageview = (ImageView)view.findViewById(R.id.imageview); TextView textview = (TextView)view.findViewById(R.id.textview); //无线轮播,非无线轮播position后面的"%list.size()"去掉 textview.setText(list.get(position%list.size()).getTitle()); ImageLoader.getInstance().displayImage(list.get(position%list.size()).getPicurl(),imageview); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } } }
Android_viewpager无线+自动轮播
最新推荐文章于 2018-09-10 11:47:09 发布