新人来袭》》最近写了个广告效果的滑动图片,记录下来,有需要的时候就可以直接拿来用,大家如果喜欢也可以看看,顺便指点一下有什么么可以修改的地方。
先发效果图:!效果图
](https://img-blog.csdn.net/20160612083806412)
上代码:
private ViewPager vPager ;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
view = inflater.inflate(R.layout.fragment_deal, null);
vPager = (ViewPager) view.findViewById(R.id.vp01);
//设置ViewPager
setViewPager();
//设置页面指示器
setPagerIndicator();
//自动滑动
setScroller();
return view;
}
private void setViewPager() {
//2.设置适配器
vPager.setAdapter(new GuidePagerAdapter());
//3.添加监听器
vPager.setOnPageChangeListener(new PagerListener());
}
//viewpager里的三张图片
private int gImages[]={
R.drawable.scenery01,
R.drawable.scenery02,
R.drawable.scenery03,
};
//自动滑动
private boolean isScroller = true;
private void setScroller() {
final Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
vPager.setCurrentItem(vPager.getCurrentItem()+1);
if (isScroller) {
h.postDelayed(this, 2000);
}
}
}, 2000);
}
//设置下方的点
private void setPagerIndicator(){
indicatorLayout=(LinearLayout) view.findViewById(R.id.indicatorLayout);
for(int i=0;i<gImages.length;i++){
View v=new View(getActivity());
v.setEnabled(false);
v.setBackgroundResource(R.drawable.pager_indicator_selector_1);
LayoutParams params=
new LayoutParams(15, 15);
params.rightMargin=10;
v.setLayoutParams(params);
indicatorLayout.addView(v);
}
//设置默认第一个点为亮点
indicatorLayout.getChildAt(0).setEnabled(true);
}
/**
* 自定义viewPageradapter 滑动广告
* @author Administrator
*
*/
class GuidePagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container,
int position, Object object) {
container.removeView((ImageView)object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView=new ImageView(getActivity());
imageView.setImageResource(gImages[position % gImages.length]);
imageView.setScaleType(ScaleType.FIT_XY);
container.addView(imageView,0);
return imageView;
}
}
private int prePos;//0
/**页面变化监听器*/
class PagerListener extends BasePagerListener{
@Override
public void onPageSelected(int pos) {
setIndicatorEnable(pos % gImages.length);
}
}
//展示的白点 黑点
private void setIndicatorEnable(int pos) {
indicatorLayout.getChildAt(prePos)
.setEnabled(false);//显示黑点
indicatorLayout.getChildAt(pos)
.setEnabled(true);//显示白点
prePos=pos;
}
//关闭activity时要解除死锁
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
isScroller = false;
Log.i("TAG", "isScroller:"+isScroller );
}
OK,就这样,我是写在fragment里的,写在activity也是一样的。
各位如果有更方便简单的方法,我们可以交流交流。