不说废话,直接代码
1.首先将不能定时切换的代码写好,也就是普通的ViewPager,如下:
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="120dp" >
<android.support.v4.view.ViewPager
android:id="@+id/app_viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<LinearLayout
android:id="@+id/ll_"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:orientation="horizontal" >
<ImageView
android:id="@+id/app_page1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/lv_dian" />
<ImageView
android:id="@+id/app_page2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/hei_dian" />
<ImageView
android:id="@+id/app_page3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:padding="15.0dip"
android:src="@drawable/hei_dian" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
ViewPager的第一个页面,就是一张图片
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="120dp"
android:orientation="vertical"
android:background="@drawable/banner1" >
</LinearLayout>
ViewPager的第二个页面,就是一张图片
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="120dp"
android:orientation="vertical"
android:background="@drawable/banner2" >
</LinearLayout>
ViewPager的第三个页面,就是一张图片
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="120dp"
android:orientation="vertical"
android:background="@drawable/banner3" >
</LinearLayout>
MainActivity:
public class ViewPagerTest extends Activity implements OnClickListener {
private Runnable viewpagerRunnable;
private static Handler handler;
private ViewPager app_viewPager;
private ImageView app_page1;
private ImageView app_page2;
private ImageView app_page3;
private int currrentPage = 0;
private ArrayList<View> views;
private LayoutInflater li;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
// this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
// WindowManager.LayoutParams.FLAG_FULLSCREEN);// 去掉信息栏
setContentView(R.layout.application_center);
initView();
app_viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
showDia();
handler = new Handler();
// 开启自动切换图片
initRunnable();
}
// 初始化view
public void initView() {
app_viewPager = (ViewPager) findViewById(R.id.app_viewpager);
app_page1 = (ImageView) findViewById(R.id.app_page1);
app_page2 = (ImageView) findViewById(R.id.app_page2);
app_page3 = (ImageView) findViewById(R.id.app_page3);
li = LayoutInflater.from(this);
views = new ArrayList<View>();
View view1 = li.inflate(R.layout.app_page1, null);
View view2 = li.inflate(R.layout.app_page2, null);
View view3 = li.inflate(R.layout.app_page3, null);
views.add(view1);
views.add(view2);
views.add(view3);
// ViewPager适配器
PagerAdapter pagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return views.size();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView(views.get(position));
}
@Override
public Object instantiateItem(View container, int position) {
((ViewPager) container).addView(views.get(position));
return views.get(position);
}
};
app_viewPager.setAdapter(pagerAdapter);
}
// viewPager监听事件
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageScrollStateChanged(int status) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
switch (arg0) {
case 0:
app_page1.setImageDrawable(getResources().getDrawable(R.drawable.lv_dian));
app_page2.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian));
app_page3.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian));
break;
case 1:
app_page2.setImageDrawable(getResources().getDrawable(R.drawable.lv_dian));
app_page1.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian));
app_page3.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian));
break;
case 2:
app_page3.setImageDrawable(getResources().getDrawable(R.drawable.lv_dian));
app_page2.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian));
app_page1.setImageDrawable(getResources().getDrawable(R.drawable.hei_dian));
break;
}
currrentPage = arg0;
}
}
private static final int TIME = 2000;
/**
* 定时切换
*/
protected void initRunnable() {
viewpagerRunnable = new Runnable() {
@Override
public void run() {
int nowIndex = app_viewPager.getCurrentItem();
int count = app_viewPager.getAdapter().getCount();
// 如果下一张的索引大于最后一张,则切换到第一张
if (nowIndex + 1 >= count) {
app_viewPager.setCurrentItem(0);
} else {
app_viewPager.setCurrentItem(nowIndex + 1);
}
handler.postDelayed(viewpagerRunnable, TIME);
}
};
handler.postDelayed(viewpagerRunnable, TIME);
}
}
initRunnable就是定时切换的代码,以上图片自行解决,完结!