• Android:ViewPager制作幻灯片


    布局:

    <?xml version="1.0" encoding="utf-8"?>
       
    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        >
        <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        >
    </android.support.v4.view.ViewPager>
        <LinearLayout 
        android:id="@+id/pointgroup"
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="5dp"
        android:gravity="center"
        >
        
    </LinearLayout>
    </RelativeLayout>

    程序:

    public class MainActivity extends Activity {
        //ViewPager 
            private ViewPager viewpager;    
            //幻灯片图片资源
            private int [] imgArray={R.drawable.view1,R.drawable.view2,R.drawable.view3};
            //图片数组
            private ArrayList<View> viewlist;
    
            private ImageView imageView;
            //点点
            private ViewGroup pointgroup;
            private ImageView[] pointarr;
            
    
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                // TODO Auto-generated method stub
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_viewpage);
                //初始化
                viewpager =(ViewPager) findViewById(R.id.viewpager);
                pointgroup =(ViewGroup) findViewById(R.id.pointgroup);
                viewlist = new ArrayList<View>();
                
                //将图片装载到数组    
                for(int i=0;i<imgArray.length;i++){
                    imageView =new ImageView(this);
                    //设置图片
                    imageView.setBackgroundResource(imgArray[i]);
                    //设置图片id
                    imageView.setId(imgArray[i]);
                    viewlist.add(imageView);
                    
                }
                
                /*
                 * viewpager加载适配器
                 * MyPageAdapter为自定义适配器
                 * */
                
                //传递上下文
                Context context = MainActivity.this;
                MyPageAdapter pageadapter2 =new MyPageAdapter(viewlist,context);
                viewpager.setAdapter(pageadapter2);        
                
                
                //点数组
                pointarr=new ImageView[imgArray.length];
                //把点加入布局,和设置点状态
                for(int i=0;i<imgArray.length;i++){
                    ImageView point=new ImageView(this);        
                    
                    //设置点大小
                    point.setLayoutParams(new LayoutParams(10,10)); 
                    pointarr[i]=point;
                    //状态处理
                    if(i==0){
                        pointarr[i].setBackgroundResource(R.drawable.viewpage_point_focused);
                    }else{
                        pointarr[i].setBackgroundResource(R.drawable.viewpage_point_unfocused);
                    }
                    //加入到容器
                    pointgroup.addView(pointarr[i]);
                }
                
            
                //viewpager设置监听器
                pointChangeListener pointListener=new pointChangeListener();
                viewpager.setOnPageChangeListener(pointListener);
                //点击图片
                
                
                
            }
                
            
            /*
             * viewpage监听器
             */
            
            public class pointChangeListener implements OnPageChangeListener{
    
                @Override
                public void onPageScrollStateChanged(int arg0) {
                    // TODO Auto-generated method stub
                    
                }
    
                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                    // TODO Auto-generated method stub
                    
                }
    
                @Override
                //比如切换到第二张图片,相应索引的点为选择状态,其他为未选中状态
                public void onPageSelected(int arg0) {
                    
                    // TODO Auto-generated method stub
                    for(int i=0;i<pointarr.length;i++){
                        pointarr[arg0].setBackgroundResource(R.drawable.viewpage_point_focused);    
                        if(arg0 !=i){
                        pointarr[i].setBackgroundResource(R.drawable.viewpage_point_unfocused);    
                        }
                    }
                    
                }
                
                
            }
            
    
            
        }

    自定义适配器:

    public class MyPageAdapter extends PagerAdapter {
        private List<View> viewlist;
        private Context context;
        public MyPageAdapter(List<View> viewlist,Context context){
            this.viewlist =viewlist;
            this.context=context;
        }
        
        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return viewlist.size();
        }
    
        @Override
        public boolean isViewFromObject(View arg0, Object arg1) {
            // TODO Auto-generated method stub
            return arg0==arg1;
        }
        
        //以下也是必要方法,不过要自己添加
        //实例化
        
        @Override
        public Object instantiateItem(View container, int position) {
            // TODO Auto-generated method stub
            ((ViewPager)container).addView(viewlist.get(position));
            View view =viewlist.get(position);
            view.setOnClickListener(new OnClickListener(){
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    int i =v.getId();
                    String t="你点击了图片的图片id为:"+i;
                    Toast.makeText(context, t, Toast.LENGTH_LONG).show();
                    
                    /*跳转页面
                    *Intent intent =new Intent(context,NavigationActivity.class);
                    *context.startActivity(intent); 
                     */ 
                
                }
                
            });
            return viewlist.get(position);                
        }
         
    
        //销毁
        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            // TODO Auto-generated method stub
            container.removeView(viewlist.get(position));
        }
        
        
    
    }

     实例下载>>>>>>>>

  • 相关阅读:
    Quick Union
    Quick Find (QF)
    ubuntu kylin18 安装NVIDIA驱动
    vim 快捷键(update)
    Qt中的ui指针和this指针
    两种状态机扫描按键,第二种只要三行!!!
    RPi:QT+wiringPi demo程序
    esp-12e折腾
    vfd电子时钟制作
    vfd with stm8
  • 原文地址:https://www.cnblogs.com/tinyphp/p/3956697.html
Copyright © 2020-2023  润新知