android:id="@+id/ll" android:layout_width="wrap_conten。简单的图片轮播 加小圆点。" />

简单的图片轮播 加小圆点

先说一下思路,使用ViewPager加 LinearLayout布局 共同实现,
先看布局

android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/support">


android:id="@+id/ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_alignParentBottom="true"
android:orientation="horizontal">


再 看配置图片设配器

//设配器
class MyAapter extends PagerAdapter{
private Context context;
private String[] path; //是一个数组 网络图片的URL
private BitmapUtils bu; //用于绘制一个位图给图片赋值
//构造传参
public MyAapter(Context context,String[] path){
this.context=context;
this.path=path;
bu = new BitmapUtils(context);
}

@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
ImageView imv=new ImageView(context);
int i=position%path.length;


bu.display(imv, path[i]);
container.addView(imv);
return imv;
}

@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; //必须写 否则报错的会
}

}

这里是给小圆点配置图片(在res目录下创建一个drawable文件夹 放配置信息)
设置默认与选择 状态的选择


在设置@drawable/shapetrue与@drawable/shapefalse的图片信息比如
@drawable/shapetrue为

android:shape="oval">

//另一个 换个颜色即可



小圆点的方法
public void dian(){
//用循环保证与图片索引一致
for(int i=0; i【简单的图片轮播 加小圆点】//创建小圆点资源文件res/drawable
ImageView im=new ImageView(this);
im.setBackgroundResource(R.drawable.colorim);
//大小
LayoutParams l=new LayoutParams(LayoutParams.WRAP_CONTENT, -2);
l.rightMargin=15;
im.setLayoutParams(l);

if(i==0){
im.setEnabled(false);
}
//把图片视图加入布局
ll.addView(im);
}
}
重要的一部滑动事件
//获取控件
support=(ViewPager)findViewById(R.id.support);
ll=(LinearLayout)findViewById(R.id.ll);

//加载设配器
support.setAdapter(new MyAapter(this,path));
//发给Handler 消息池处理

hand.sendEmptyMessageDelayed(0, 2000);

//滑动事件
support.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
// 取出正确的索引
int in=arg0%path.length;
//取出控件
ImageView ima=(ImageView)ll.getChildAt(in);
ima.setEnabled(false);
ImageView laseim=(ImageView)ll.getChildAt(index);
laseim.setEnabled(true);
index=in;

}

@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

}
});
dian(); //调用的小圆点方法
Handler 处理详情
private Handler hand=new Handler(){
public void handleMessage(android.os.Message msg) {
//获得当前viewPager位置
int item=support.getCurrentItem();
item+=1;
support.setCurrentItem(item);
hand.sendEmptyMessageDelayed(0, 2000); //再次发送调用实现无限轮播
};
};

    推荐阅读