安卓高级控件之ViewPager

来源:互联网 发布:python string转list 编辑:程序博客网 时间:2024/06/07 01:10

<1>引导页:适配器   PageAdapter

                     滑动监听   addOnPageChangeListener

                      导航点     github 开源框架  : ViewPagerIndicator

                      属性:setRadius   (设置半径

                                 setPageColor  (点的背景颜色)

                                  setBackgroudColor  (控件的背景颜色)

                                 setFillColor    (设置点的背景颜色)

                                            setStrokeColor   (设置点背景的边框颜色)


用ViewPager做了图片的切换,其效果图如下:



XML代码如下:

[html] view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="com.example.cookie.android0612weidgh.ViewPageActivity">  
  8. <android.support.v4.view.ViewPager  
  9.     android:layout_width="match_parent"  
  10.     android:layout_height="match_parent"  
  11.     android:id="@+id/vp_view_page_image">  
  12.   
  13. </android.support.v4.view.ViewPager>  
  14.   
  15.   
  16. </android.support.constraint.ConstraintLayout>  

JAVA代码如下:

[html] view plain copy
  1. public class ViewPageActivity extends AppCompatActivity {  
  2.   
  3.     private ViewPager vp_view_page_image;  
  4.     private int images[]={R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four};  
  5.     private List<View> views=new ArrayList<>();  
  6.   
  7.     @Override  
  8.     protected void onCreate(Bundle savedInstanceState) {  
  9.         super.onCreate(savedInstanceState);  
  10.         setContentView(R.layout.activity_view_page);  
  11.         vp_view_page_image = (ViewPager) findViewById(R.id.vp_view_page_image);  
  12.         for (int i = 0; i < images.length; i++) {  
  13.             ImageView iv=new ImageView(this);  
  14.             iv.setImageResource(images[i]);  
  15.             views.add(iv);  
  16.         }  
  17.         vp_view_page_image.setAdapter(new MyAdapter());  
  18.     }  
  19.   
  20.   
  21.     class MyAdapter extends PagerAdapter{  
  22.   
  23.         @Override  
  24.         public int getCount() {  
  25.             return views.size();  
  26.         }  
  27.   
  28.         @Override  
  29.         public boolean isViewFromObject(View view, Object object) {  
  30.             return view==object;  
  31.         }  
  32.   
  33.         //重写方法的快捷键alt   insert  
  34.   
  35.         @Override  
  36.         public Object instantiateItem(ViewGroup container, int position) {  
  37.             View v=views.get(position);  
  38.             container.addView(v);  
  39.             return v;  
  40.         }  
  41.   
  42.         //当图片滑动到看不见的时候就会销毁  
  43.         @Override  
  44.         public void destroyItem(ViewGroup container, int position, Object object) {  
  45.             //最好把这行代码给干掉,因为有的机型写上这行代码会报错  
  46.            // super.destroyItem(container, position, object);  
  47.             View v=views.get(position);  
  48.             container.removeView(v);  
  49.   
  50.         }  
  51.     }  

原创粉丝点击