功能我想大家都知道,废话不多说。
上代码
private ViewPager vp;
private LinearLayout ll;private ArrayList<ImageView> circles;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
vp.setCurrentItem(vp.getCurrentItem() + 1);
mHandler.sendEmptyMessageDelayed(0, 2000);
}
};
protected void initViews(View v) {
PullToRefreshScrollView scrollView = (PullToRefreshScrollView) v.findViewById(R.id.fragment_home_scrollview);
vp = (ViewPager) v.findViewById(R.id.fragment_home_viewpager);
ll = (LinearLayout) v.findViewById(R.id.fragment_home_ll);
TextView allGoods = (TextView) v.findViewById(R.id.fragment_home_allgoods);
recyclerView = (RecyclerView) v.findViewById(R.id.fragment_home_recyclerview);
//设置布局管理器
LinearLayoutManager manager = new LinearLayoutManager(getContext());
// FullyLinearLayoutManager layoutManager = new FullyLinearLayoutManager(getContext());
recyclerView.setLayoutManager(manager);
recyclerView.setNestedScrollingEnabled(false);
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
for (int i = 0; i < circles.size(); i++) {
if (position % circles.size() == i) {
circles.get(i).setSelected(true);
} else {
circles.get(i).setSelected(false);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
vp.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mHandler.removeCallbacksAndMessages(null);
break;
case MotionEvent.ACTION_UP:
mHandler.sendEmptyMessageDelayed(0, 2000);
break;
}
return false;
}
});
allGoods.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), AllGoodsActivity.class));
}
});
}
//这边你可以根据需求加载你要展示的图片
private void prepareData() {
final ArrayList<ImageView> imageViews = new ArrayList<>();
circles = new ArrayList<>();
for ( int i = 0; i < 5; i++) {
final int j=i;
ImageView imageView = new ImageView(getContext());
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
ImageUtils.loadImagView(this, ad1.get(i).getImage(), imageView);
imageViews.add(imageView);
ImageView circle = new ImageView(getContext());
circle.setImageResource(R.drawable.selector_cicle);
circle.setPadding(8, 3, 3, 3);
ll.addView(circle);
circles.add(circle);
//为图片添加点击事件
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().startActivity(new Intent(getActivity(), MyWebView.class)
.putExtra("url",ad1.get(j).getAd_type_dynamic_data()));
}
});
}
ViewPagerAdapter adapter = new ViewPagerAdapter(imageViews);
vp.setAdapter(adapter);
vp.setCurrentItem(100);
circles.get(100 % circles.size()).setSelected(true);
mHandler.sendEmptyMessageDelayed(0, 2000);
}
下面是小圆点
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>
<size android:height="7dp" android:width="7dp"></size>
<solid android:color="@color/gray"></solid>
</shape>
小矩形
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners android:radius="3dp"></corners>
<size android:width="12dp" android:height="7dp"></size>
<solid android:color="@color/white"></solid>
</shape>
小圆点选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
>
<item android:state_selected="true" android:drawable="@drawable/shape_viewpager_rect"></item>
<item android:state_selected="false" android:drawable="@drawable/shape_viewpager_cicle"></item>
</selector>
下面是布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/fragment_home_rl"
android:layout_height="200dp">
<android.support.v4.view.ViewPager
android:id="@+id/fragment_home_viewpager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
/>
<LinearLayout
android:id="@+id/fragment_home_ll"
android:layout_marginTop="170dp"
android:gravity="end"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="20dp"/>
</RelativeLayout>
好了,下面是viewpager的适配器
public class ViewPagerAdapter extends PagerAdapter {
private ArrayList<ImageView> images;
public ViewPagerAdapter(ArrayList<ImageView> images) {
this.images = images;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = images.get(position%images.size());
container.addView(imageView);
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
}
到这viewpager的无限轮播就结束了,0.0;