public class MainActivity extends Activity {
private ViewPager pager;
private ImageView mDian1, mDian2, mDian3, mDian4, img;
private List<View> list = new ArrayList<View>();
private int[] image = {R.drawable.suc1, R.drawable.suc2, R.drawable.suc3, R.drawable.suc4};
private View[] views = new View[image.length];
private boolean TouchFlag = false;// 触摸锁
private boolean isFlag = true;// 关闭广告轮播的标志
private int index = 0;// 当前页面索引值
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initList();
startTime();
}
private void initView() {
pager = (ViewPager) findViewById(R.id.pager);
mDian1 = (ImageView) findViewById(R.id.mDian1);
mDian2 = (ImageView) findViewById(R.id.mDian2);
mDian3 = (ImageView) findViewById(R.id.mDian3);
mDian4 = (ImageView) findViewById(R.id.mDian4);
pager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
Log.e("", "当前显示的图片索引"+arg0);
clean();
switch (arg0%views.length) {
case 0:
mDian1.setImageResource(R.drawable.vote_n_can_y);
break;
case 1:
mDian2.setImageResource(R.drawable.vote_n_can_y);
break;
case 2:
mDian3.setImageResource(R.drawable.vote_n_can_y);
break;
case 3:
mDian4.setImageResource(R.drawable.vote_n_can_y);
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
index = arg0;
Log.e("", "当前索引"+arg0);
Log.e("", "当前偏移量"+arg1);
Log.e("", "当前偏移像素"+arg2);
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
// 滑动
Log.e("", "111111"+ViewPager.SCROLL_STATE_DRAGGING);
// 停止
Log.e("", "000000"+ViewPager.SCROLL_STATE_IDLE);
// 沉降
Log.e("", "222222"+ViewPager.SCROLL_STATE_SETTLING);
if (arg0 == ViewPager.SCROLL_STATE_IDLE) {
TouchFlag = false;
}else {
TouchFlag = true;
}
}
});
pager.setAdapter(new MyAdapter());
}
private Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
if (TouchFlag)
return ;
if (!isFlag)
return ;
index++;
pager.setCurrentItem(index);
}
}
};
private void initList() {
for (int i = 0; i < image.length; i++) {
View v = View.inflate(this, R.layout.view_main, null);
img = (ImageView) v.findViewById(R.id.mImg);
img.setImageResource(image[i]);
list.add(v);
views[i] = v;
}
}
public class MyAdapter extends PagerAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager)container).removeView(views[position%list.size()]);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
((ViewPager)container).addView(views[position%list.size()]);
return views[position%list.size()];
}
}
private void clean(){
mDian1.setImageResource(R.drawable.vote_n_can_n);
mDian2.setImageResource(R.drawable.vote_n_can_n);
mDian3.setImageResource(R.drawable.vote_n_can_n);
mDian4.setImageResource(R.drawable.vote_n_can_n);
}
private class TimeThread extends Thread{
@Override
public void run() {
while (isFlag) {
try {
Thread .sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendEmptyMessage(0);
}
}
}
private void startTime(){
new TimeThread().start();
}
private void closeTime(){
isFlag = false;
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
closeTime();
}
}
XML代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center_horizontal"
android:layout_marginBottom="25dp"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/mDian1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vote_n_can_y"
/>
<ImageView
android:id="@+id/mDian2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vote_n_can_n"
/>
<ImageView
android:id="@+id/mDian3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vote_n_can_n"
/>
<ImageView
android:id="@+id/mDian4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/vote_n_can_n"
/>
</LinearLayout>
</RelativeLayout>
图片xml代码:
<?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" >
<ImageView
android:id="@+id/mImg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY" />
</LinearLayout>