zoukankan      html  css  js  c++  java
  • android 滚动界面的设置

    也就是这个样子,几个图片可以互换 其中主要的空间用到了Viewpager

    public class Whatsnew extends Activity {
        
        private ViewPager mViewPager;    
        private ImageView mPage0;
        private ImageView mPage1;
        private ImageView mPage2;
        private ImageView mPage3;
        private ImageView mPage4;
        private ImageView mPage5;
            
        private int currIndex = 0;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.whatsnew_viewpager);
            mViewPager = (ViewPager)findViewById(R.id.whatsnew_viewpager);        
            mViewPager.setOnPageChangeListener(new MyOnPageChangeListener());
           
            
            mPage0 = (ImageView)findViewById(R.id.page0);
            mPage1 = (ImageView)findViewById(R.id.page1);
            mPage2 = (ImageView)findViewById(R.id.page2);
            mPage3 = (ImageView)findViewById(R.id.page3);
            mPage4 = (ImageView)findViewById(R.id.page4);
            mPage5 = (ImageView)findViewById(R.id.page5);
            
          //将要分页显示的View装入数组中
            LayoutInflater mLi = LayoutInflater.from(this);
            View view1 = mLi.inflate(R.layout.whats1, null);
            View view2 = mLi.inflate(R.layout.whats2, null);
            View view3 = mLi.inflate(R.layout.whats3, null);
            View view4 = mLi.inflate(R.layout.whats4, null);
            View view5 = mLi.inflate(R.layout.whats5, null);
            View view6 = mLi.inflate(R.layout.whats6, null);
            
          //每个页面的view数据
            final ArrayList<View> views = new ArrayList<View>();
            views.add(view1);
            views.add(view2);
            views.add(view3);
            views.add(view4);
            views.add(view5);
            views.add(view6);
            
            //填充ViewPager的数据适配器
            PagerAdapter mPagerAdapter = new PagerAdapter() {
                
                @Override
                public boolean isViewFromObject(View arg0, Object arg1) {
                    return arg0 == arg1;
                }
                
                @Override
                //返回用view的数量,也就是几个页面构成
                public int getCount() {
                    return views.size();
                }
    
                @Override
                public void destroyItem(View container, int position, Object object) {
                    //删除指定位置的View
                    ((ViewPager)container).removeView(views.get(position));
                }
                
                
                
                @Override
                public Object instantiateItem(View container, int position) {
                    ((ViewPager)container).addView(views.get(position));
                    return views.get(position);
                    //在指定位置添加页面
                }
            };
            
            mViewPager.setAdapter(mPagerAdapter);
        }    
        
    
        //mViewPager的监听代码
        public class MyOnPageChangeListener implements OnPageChangeListener {
            @Override
            public void onPageSelected(int arg0) {//这个方法将一个新的页面选中状态
                switch (arg0) {
                case 0:                
                    mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
                    mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    break;
                case 1:
                    mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
                    mPage0.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    break;
                case 2:
                    mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
                    mPage1.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    break;
                case 3:
                    mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
                    mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    mPage2.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    break;
                case 4:
                    mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
                    mPage3.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    break;
                case 5:
                    mPage5.setImageDrawable(getResources().getDrawable(R.drawable.page_now));
                    mPage4.setImageDrawable(getResources().getDrawable(R.drawable.page));
                    break;
                }
                currIndex = arg0;
                //animation.setFillAfter(true);// True:图片停在动画结束位置
                //animation.setDuration(300);
                //mPageImg.startAnimation(animation);
            }
            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }
    
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        }
            
    }

    其中开始设置的imageview mpage0~mapage5是代表的下面的点的图片

    后面的layout whats是真正界面的view,其中还用到了泛型和集合的概念,这是java中的语言,不过多解释了,强调下pagerAdaper的复写,添加集合的方式就是如此,可以记住,以后使用就方便了,一些方法的注释来自SDK docs解释文件中

    LayoutInflater这个类是实例化一个布局XML文件到相应的视图对象。但它却永远不会直接使用。相反,使用getLayoutInflater()或getSystemService(字符串)来检索一个标准LayoutInflater实例已经连接到当前上下文,正确配置的设备上运行。

    Inflate的意思是添加资源到指定的activity

  • 相关阅读:
    git 学习笔记
    参看gitlab版本号
    PHP7.1安装xdebug
    言不由衷
    容器镜像上传和下载
    利用docker搭建ubuntu+nginx+PHP容器
    生产者消费者模式(转)
    白盒测试以及基路径法测试
    分页的简单实现
    排列2(全排列next_permutation 注意格式)
  • 原文地址:https://www.cnblogs.com/moonandwhite/p/3485247.html
Copyright © 2011-2022 走看看