//首先在Xml中画点 画两个颜色不一样的点 在drawable文件夹下
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@android:color/holo_red_dark"></solid>
<size android:height="10dp" android:width="10dp"/>
</shape>
//第二个点
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@android:color/holo_green_dark"></solid>
<size android:height="10dp" android:width="10dp"/>
</shape>
代码
private static final int W = 0;
private ViewPager vp;
private int[] image={R.drawable.a,R.drawable.b,R.drawable.c};
private Button button;
private LinearLayout ll;
List<ImageView> imageiv=new ArrayList<ImageView>();
//无限轮播的handler 接收msg
private Handler handler =new Handler(){
public void handleMessage(android.os.Message msg) {
if(msg.what==W)
{
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
}
};
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找控件
vp = (ViewPager) findViewById(R.id.vp);
button = (Button) findViewById(R.id.button);
ll = (LinearLayout) findViewById(R.id.ll);
vp.setAdapter(new MyAdapter());
vp.setCurrentItem(10000*image.length);
//代用加点的方法
intiDian();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
//在Viewpager的点击事件中 让点变化
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// TODO Auto-generated method stub
if(position%image.length==2)
{
button.setVisibility(View.VISIBLE);
}
else
{
button.setVisibility(View.INVISIBLE);
}
for (int i = 0; i <=imageiv.size()-1; i++) {
if(i==position%image.length)
{
imageiv.get(i).setImageResource(R.drawable.write);
}
else
{
imageiv.get(i).setImageResource(R.drawable.red);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
//viewpager的自动轮播
handler.sendEmptyMessageDelayed(W, 2000);
}
//添加点的方法
private void intiDian() {
for (int i = 0; i < image.length; i++) {
ImageView iv = new ImageView(MainActivity.this);
if(i==0)
{
//在Xml中画点
iv.setImageResource(R.drawable.write);
}
else
{
iv.setImageResource(R.drawable.red);
}
LayoutParams params=new LayoutParams(20, 20);
params.setMargins(15, 0, 15, 0);
ll.addView(iv,params);
imageiv.add(iv);
}
}
class MyAdapter extends PagerAdapter{
private View view;
@Override
public int getCount() {
// TODO Auto-generated method stub
//viewpager的无限轮播
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) {
// TODO Auto-generated method stub
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
view = LayoutInflater.from(MainActivity.this).inflate(R.layout.vp_item, null);
ImageView iv = (ImageView) view.findViewById(R.id.iv);
//修改position 实现无限轮播
iv.setImageResource(image[position%image.length]);
container.addView(view);
return view;
}
}
}