14 import android.widget.LinearLayout;
15 import android.widget.TextView;
16
17 public class MainActivity extends AppCompatActivity {
18
19 private ViewPager mViewPager;
20 int[] imgs;
21 String[] titles;
22 TextView tvTitle;
23 LinearLayout llIndicator;
24 Button mGo;
25 @Override
26 protected void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.activity_main);
29 mViewPager= (ViewPager) this.findViewById(R.id.vp_info);
30 imgs=new int[]{R.drawable.s01,R.drawable.s02,R.drawable.s03,R.drawable.s04,R.drawable.s05};
31 titles=new String[]{"第一张图","第二张图","第三张图","第四张图","第五张图"};
32 tvTitle= (TextView) this.findViewById(R.id.tv_title);
33 //构造适配器并赋值
34 MyAdapter adapter=new MyAdapter();
35 mViewPager.setAdapter(adapter);
36 //初始化第一个标题
37 tvTitle.setText(titles[0]);
38 //初始化指示器
39 llIndicator = (LinearLayout) this.findViewById(R.id.ll_Indicator);
40 setIndicator(0);
41 //设置页面切换监听事件
42 mViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
43 /**
44 * 页面被选中
45 * @param position
46 */
47 @Override
48 public void onPageSelected(int position) {
49 Log.v("DemoViewPager","当前是:"+titles[position]);
50 tvTitle.setText(titles[position]);
51 //设置指示器
52 llIndicator.removeAllViews();
53 setIndicator(position);
54 }
55 });
56 //页面跳转
57 mGo= (Button) this.findViewById(R.id.bn_go);
58 mGo.setOnClickListener(new View.OnClickListener() {
59 @Override
60 public void onClick(View v) {
61 Intent intent=new Intent(MainActivity.this,Main2Activity.class);
62 startActivity(intent);
63 }
64 });
65 }
66
67 /**
68 * 设置指示器
69 * @param position
70 */
71 private void setIndicator(int position){
72 for(int i=0;i<imgs.length;i++) {
73 ImageView imgIndicatior = new ImageView(MainActivity.this);
74 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(10, 10);
75 layoutParams.leftMargin = 10;
76 layoutParams.rightMargin = 10;
77 imgIndicatior.setLayoutParams(layoutParams);
78 if (i == position) {
79 imgIndicatior.setImageResource(R.drawable.dot1);
80 } else {
81 imgIndicatior.setImageResource(R.drawable.dot0);
82 }
83 llIndicator.addView(imgIndicatior);
84 }
85 }
86
87 /*
88 描述:自定义一适配器
89 */
90 class MyAdapter extends PagerAdapter
91 {
92
93 @Override
94 public int getCount() {
95 return imgs == null ? 0 : imgs.length;
96 }
97
98 /**
99 * 是否需要重新加载子视图
100 * @param view
101 * @param object
102 * @return
103 */
104 @Override
105 public boolean isViewFromObject(View view, Object object) {
106 return view == object;
107 }
108
109 @Override
110 public void destroyItem(ViewGroup container, int position, Object object) {
111 //container.removeViewAt(position);
112 container.removeView((View)object);
113 }
114
115 /**
116 * 生成子视图
117 * @param container
118 * @param position
119 * @return
120 */
121 @Override
122 public Object instantiateItem(ViewGroup container, int position) {
123 ImageView img=new ImageView(container.getContext());
124 img.setImageResource(imgs[position]);
125 container.addView(img);
126 return img;
127 }
128
129 @Override
1 |