简单的图片轮播 加小圆点
先说一下思路,使用ViewPager加 LinearLayout布局 共同实现,
先看布局
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:id="@+id/support">
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);
//再次发送调用实现无限轮播
};
};
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 宽容谁
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 第6.2章(设置属性)
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。