• viewpage启动页


    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <androidx.viewpager.widget.ViewPager
            android:id="@+id/first_viewpager"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </androidx.viewpager.widget.ViewPager>
    
        <LinearLayout
            android:id="@+id/viewpager_tag_viewgroup"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_marginBottom="32dp"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
    android:layout_marginRight="60px"
            android:padding="20dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"></LinearLayout>
    
        <Button
            android:id="@+id/view_pager_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/viewpager_tag_viewgroup"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="128dp"
            android:background="@drawable/shap3"
    
            android:text="立即体验"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.498"
            app:layout_constraintStart_toStartOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    public class MainActivity extends Activity implements ViewPager.OnPageChangeListener {
    
            private ViewPager mViewPager;
            //图片资源的数组
            private int[] mImageIdArray;
            //图片的集合
            private List<View> mViewList;
            //放置圆点
            private ViewGroup mViewGroup;
            //实例化圆点View
            private ImageView mImageView;
            private ImageView[] mImageViewArray;
            //最后一页的按钮
            private Button mButton;
    
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
    
                requestWindowFeature(Window.FEATURE_NO_TITLE);
                getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                        WindowManager.LayoutParams.FLAG_FULLSCREEN);
    
                setContentView(R.layout.activity_main);
    
                mButton = (Button) findViewById(R.id.view_pager_button);
                mButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
    //                    startActivity(new Intent(ViewPagerActivity.this, LoginActivity.class));
    //                    finish();
                    }
                });
                //加载ViewPager
                initViewpager();
                //加载底部圆点
                initViewPagerTag();
    
            }
    
            /**
             * 加载底部圆点
             */
            private void initViewPagerTag() {
                //这里实例化LinearLayout
                mViewGroup = (ViewGroup) findViewById(R.id.viewpager_tag_viewgroup);
                //根据ViewPager的item数量实例化数组
                mImageViewArray = new ImageView[mViewList.size()];
                //循环新建底部圆点imageview,将生成的imageview保存到数组中
                for (int i = 0; i < mViewList.size(); i++) {
                    mImageView = new ImageView(this);
                    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(20, 20);
                    layoutParams.leftMargin = 60;
                    mImageView.setLayoutParams(layoutParams);
    
                    mImageViewArray[i] = mImageView;
                    //第一个页面需要设为选中状态,这里要使用两张不同的图片(选中与未选中)
                    if (i == 0) {
                        mImageView.setBackgroundResource(R.drawable.shap1);
                    } else {
                        mImageView.setBackgroundResource(R.drawable.shap2);
                    }
                    //将数组中的imageview加入到viewgroup
                    mViewGroup.addView(mImageViewArray[i]);
                }
            }
    
            /**
             * 加载ViewPager
             */
            private void initViewpager() {
                mViewPager = (ViewPager) findViewById(R.id.first_viewpager);
                //实例化图片资源
                mImageIdArray = new int[]{R.drawable.lunch1, R.drawable.lunch2, R.drawable.lunch3, R.drawable.lunch4};
    
                mViewList = new ArrayList<View>();
                //获取一个layout参数,设置为match_parent
                LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT
                        , LinearLayout.LayoutParams.MATCH_PARENT);
    
                //循环创建view并进入集合
                for (int i = 0; i < mImageIdArray.length; i++) {
                    //new imageview并设置全屏和图片资源
                    ImageView imageView = new ImageView(this);
                    imageView.setLayoutParams(params);
                    imageView.setBackgroundResource(mImageIdArray[i]);
    
                    //将imageview加入到View集合中
                    mViewList.add(imageView);
                }
                //View集合数据初始化好,setAdapter就可以了
                mViewPager.setAdapter(new GuidePagerAdapter(mViewList));
                //添加ViewPager的滑动监听,注意是.add...以前是setOnPageChangeListener方法,已过时
                mViewPager.addOnPageChangeListener(this);
            }
    
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    
            }
            //滑动后的监听
            @Override
            public void onPageSelected(int position) {
                //循环设置当前页的标记图
                for (int i = 0; i < mImageViewArray.length; i++) {
                    mImageViewArray[position].setBackgroundResource(R.drawable.shap1);
                    if (position != i) {
                        mImageViewArray[i].setBackgroundResource(R.drawable.shap2);
                    }
                }
                //判断是否最后一页,是则显示button
                if (position == mImageViewArray.length - 1) {
                    mButton.setVisibility(View.VISIBLE);
                } else {
                    mButton.setVisibility(View.GONE);
                }
            }
    
            @Override
            public void onPageScrollStateChanged(int state) {
    
            }
        }
      public class GuidePagerAdapter extends PagerAdapter {
            private List<View> viewList;
    
            public GuidePagerAdapter(List<View> viewList) {
                this.viewList = viewList;
            }
            /**
             * 返回页面的个数
             *
             * @return
             */
            @Override
            public int getCount() {
                if (viewList != null) {
                    return viewList.size();
                }
                return 0;
            }
    
            /**
             * 判断是否由对象生成界面
             *
             * @param view
             * @param object
             * @return
             */
            @Override
            public boolean isViewFromObject(View view, Object object) {
                return view == object;
            }
    
            /**
             * 初始化position位置的界面
             *
             * @param container
             * @param position
             * @return
             */
            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                ((ViewPager) container).addView(viewList.get(position), 0);
                return viewList.get(position);
            }
    
            /**
             * 移除页面
             *
             * @param container
             * @param position
             * @param object
             */
            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                ((ViewPager) container).removeView(viewList.get(position));
            }
        }
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
    
        <corners android:radius="5dp" />
        <solid android:color="@android:color/white" />
    
    </shape>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"  android:shape="oval" >
    
        <corners android:radius="5dp" />
        <solid android:color="@android:color/darker_gray" />
    
    </shape>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <corners android:radius="10dp" />
        <solid android:color="@android:color/holo_blue_bright" />
    
    </shape>
  • 相关阅读:
    AS400一些有用的命令
    Publish的时候某些需要用到的文件没deploy上去
    DB2一些SQL的用法
    根据PostgreSQL 系统表查出字段描述
    linux memcached 安装
    CentOS下XEN虚拟服务器安装配置
    Apache the requested operation has failed
    PHP配置兼容ZendDebugger和Optimizer
    虚拟机比较
    memcache 运行情况,内存使用
  • 原文地址:https://www.cnblogs.com/Ocean123123/p/13891492.html
Copyright © 2020-2023  润新知