,,,,说下大概实现步骤,一般我们有两种,一种是:viewpage +作为游标的点。另外一种是重写:viewpage。
,,,,,,效果图:
1.1布的局,直接:viewpage +一个viewgroup就好。
& lt; RelativeLayout xmlns: android=" http://schemas.android.com/apk/res/android " xmlns:工具=" http://schemas.android.com/tools " android: layout_width=" match_parent " android: layout_height=" match_parent " 工具:上下文=" com.maxence.viewpager。祝辞MainActivity”; & lt;使用 android: layout_width=" match_parent " android: layout_height=?20 dp”比; & lt; android.support.v4.view.ViewPager android: id=癅 + id/vp_pager” android: layout_width=" match_parent " android: layout_height=" match_parent "/比; & lt; !——作为viewgroup动态加游标——比; LinearLayout & lt; android: id=癅 + id/ll_container” android: layout_width=" match_parent " android: layout_height=" 30 dp " android:重力="中心" 面向android:="水平" android: layout_alignParentBottom=" true " 祝辞& lt;/LinearLayout> & lt;/RelativeLayout> & lt;/RelativeLayout>>之前, 1.2动态添加的点,常规白点:point_normal.xml。
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt;形状xmlns: android=" http://schemas.android.com/apk/res/android " android:形状=巴衷病北? & lt;中风 android:宽度=?下降” android:颜色=" # ffffff "/比; & lt;固体android:颜色=" # ffffff "/比; & lt;/shape>>之前,,选中为红点:point_select.xml
& lt; & # 63; xml version=" 1.0 " encoding=" utf - 8 " & # 63;比; & lt;形状xmlns: android=" http://schemas.android.com/apk/res/android " android:形状=巴衷病北? & lt;中风 android:宽度=" 1 dp " android:颜色=" # ff0000 "/比; & lt;固体android:颜色=" # ff0000 "/比; & lt;/shape>>之前1.3动态添加进去图片和游标点。
/* * * 初始化数据 */私人空间initData () { mContext=; int[]我=new int [] {R.drawable。bg_lunbo1 R.drawable。bg_lunbo2 R.drawable。bg_lunbo3 R.drawable。bg_lunbo4}; 艾尔=new ArrayList(); for (int x=0;x & lt;i.length;x + +) { 第四ImageView=new ImageView (mContext); iv.setBackgroundResource(我[x]); al.add (iv); 视图v=新视图(mContext); v.setBackgroundResource (R.drawable.point_normal);//有多少张图就放置几个点 LayoutParams LayoutParams=新LinearLayout。LayoutParams (15、15); layoutParams。leftMargin=30; ll_container.addView (v, layoutParams); } vp_pager。setAdapter(新Myadapter ()); vp_pager.setOnPageChangeListener(这个); vp_pager.setCurrentItem (al.size () * 1000);//这个是无线轮询的关键 ll_container.getChildAt (0) .setBackgroundResource (R.drawable.point_select); 介词=0; } 1.4 viewpgaer绑定PagerAdapter,这样就能滑动照片并且无限滑了。
类Myadapter延伸PagerAdapter { @Override 公共int getCount () { 返回Integer.MAX_VALUE;//要无限轮播 } @Override 公共布尔isViewFromObject(视图arg0,对象__arg1) { 返回arg0==__arg1; } @Override 公共对象instantiateItem (ViewGroup容器,int位置){ int position1=位置% al.size (); ImageView ImageView=al.get (position1); container.addView (imageView); 返回imageView; } @Override 公共空间destroyItem (ViewGroup容器,int位置、对象对象){ container.removeView((视图)对象); } }1.5实现游标,就是滑动图片、下面的红点也跟着变化。
vp_pager.setOnPageChangeListener(这个); @Override 公共空间>/* * *自动轮询 */私人空间pollint () { pThread=new PollThread (); pThread.start (); } 类PollThread扩展线程{ @Override 公共空间run () { 而(调查){ 尝试{ thread . sleep (2000); }捕捉(InterruptedException e) { e.printStackTrace (); }<代码> runOnUiThread(新Runnable () {@Overridepublic无效运行(){vp_pager.setCurrentItem (vp_pager.getCurrentItem() + 1);}});}}}
Android使用:viewpage实现自动无限轮播图