Activity
public class MainActivity extends AppCompatActivity { ViewPager vp_ma; //ViewPager LbUtils Lu;//数据请求的包 LbBean lb; //LbBean包 LbApdata lbApdata; //轮播图的适配器 List<ImageView> list; //用于存放轮播图的图片额集合 List<LbBean.NewslistBean> list1; //轮播图的bena包 private List<ImageView> imagesList; //用于存放小圆点的集合 LinearLayout linearLayout; //小园点的布局控件 Button bt_ma; //Button按钮用于实现跳转 //handler机制 //用于实现无限轮播 private Handler handler = new Handler(){ public void handleMessage(Message msg) { //获取当前条目 int index = vp_ma.getCurrentItem(); //向右轮播 vp_ma.setCurrentItem(index+=1); //间隔2秒 handler.sendEmptyMessageDelayed(1,1000);//轮播图轮播的速度 }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //找控件 vp_ma = (ViewPager) findViewById(R.id.vp_ma); linearLayout = (LinearLayout) findViewById(R.id.linearLayout); bt_ma = (Button) findViewById(R.id.bt_ma); getBeanByGson(); //viewPager页面改变的监听事件 小圆点的监听 vp_ma.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { //如果选中了这一页,,,当前小圆点红色,,,否则绿色 for (int i = 0;i<imagesList.size();i++){ if (i== position%imagesList.size()){ imagesList.get(i).setImageResource(R.drawable.doc_select); }else { imagesList.get(i).setImageResource(R.drawable.doc_select_no); } } } @Override public void onPageScrollStateChanged(int state) { } }); //给Button一个点击事件 用于跳转 bt_ma.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MainActivity.this,Activity.class); startActivity(intent); } }); } //轮播图的解析 public void getBeanByGson() { // 使用该方法得到了一个 Json的字符输入流 new AsyncTask<String, String, String>() { @Override protected String doInBackground(String... strings) { String reader = LbUtils.getNetDataStr(); return reader; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); // 使用Gson把该字符输入流转换成JavaBean Gson gson = new Gson(); lb = gson.fromJson(s, LbBean.class); list = new ArrayList<ImageView>(); list1 = new ArrayList<>(); list1.addAll(lb.getNewslist()); for (int i = 0; i < list1.size(); i++) { ImageView imageView = new ImageView(MainActivity.this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); ImageLoader.getInstance().displayImage(list1.get(i).getPicUrl(), imageView); list.add(imageView); } initDoc(); lbApdata = new LbApdata(list); vp_ma.setAdapter(lbApdata); handler.sendEmptyMessageDelayed(1, 1000);//轮播图轮播的速度 } }.execute(); } private void initDoc() { //首先需要一个集合记录这些小圆点的图片,,,,当页面切换的时候,可以从集合中取出imageView进行显示图片的设置 imagesList = new ArrayList<>(); linearLayout.removeAllViews();//清空/移除所有的view for (int i = 0;i<list.size();i++){ ImageView imageView = new ImageView(MainActivity.this); if (i==0){ //显示第一页,,,红的 imageView.setImageResource(R.drawable.doc_select); }else { //绿的 imageView.setImageResource(R.drawable.doc_select_no); } //添加到集合 imagesList.add(imageView); //加入到线性布局中显示 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(5,0,5,0);//这是小圆点间距 linearLayout.addView(imageView,params);//把小圆点存放到布局中 } } }
Activity布局
<RelativeLayout x