• android之ViewPager


    在android中ViewPager是非常常用的控件。它在android.support.v4.view.ViewPager下。你们自己可以进http://developer.android.com/reference/android/support/v4/view/package-summary.html

    进行了解与学习。

    下面是我自己写的一个测试的viewpager。代码如下

    /**   
     * @Title: HelpActivity.java 
     * @Package com.konka.Home 
     * @version V1.0   
     */
    package com.example.help;
    
    import java.util.ArrayList;
    import java.util.List;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.Parcelable;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v4.view.ViewPager.OnPageChangeListener;
    import android.view.KeyEvent;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.AbsoluteLayout;
    import android.widget.ImageButton;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    import android.widget.RelativeLayout;
    
    /**
     * @ClassName: HelpActivity
     * @author llb
     * 
     */
    public class HelpActivity extends Activity implements OnClickListener,
            OnPageChangeListener {
        private static final String TAG = HelpActivity.class.getSimpleName();
        private ViewPager viewPager;
        private ArrayList<View> pageViews;
        private ViewGroup main, group;
        private ImageView[] dots;
        private ImageButton imgbtn;
        private int currentIndex;
        private ViewPagerAdapter vpAdapter;
        private ImageView imageView;
        private static final int GO_BTN = 10;
        private static final int[] help_pics = { R.drawable.guide0,
                R.drawable.guide1, R.drawable.guide2, R.drawable.guide_cooperate };
    
        /** 
         * @param savedInstanceState
         * @see android.app.Activity#onCreate(android.os.Bundle)
         */
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            pageViews = new ArrayList<View>();
            LayoutInflater inflater = getLayoutInflater();
            main = (ViewGroup) inflater.inflate(R.layout.help, null);
            LinearLayout.LayoutParams mParams = new LinearLayout.LayoutParams(
                    LinearLayout.LayoutParams.WRAP_CONTENT,
                    LinearLayout.LayoutParams.WRAP_CONTENT);
            for (int i = 0; i < help_pics.length; i++) {
                RelativeLayout rl = new RelativeLayout(this);
                rl.setLayoutParams(mParams);
                rl.setBackgroundResource(help_pics[i]);
                if (i == (help_pics.length - 1)) {
                    imgbtn = new ImageButton(this);
                    imgbtn.setBackgroundResource(R.drawable.help_go_btn_selector);
                    imgbtn.setOnClickListener(this);
                    imgbtn.setTag(GO_BTN);
                    RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(
                            RelativeLayout.LayoutParams.WRAP_CONTENT,
                            RelativeLayout.LayoutParams.WRAP_CONTENT);
                    lp1.bottomMargin = 80;
                    lp1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
                    lp1.addRule(RelativeLayout.CENTER_HORIZONTAL,
                            RelativeLayout.TRUE);
                    rl.addView(imgbtn, lp1);
                }
                pageViews.add(rl);
    
            }
            /*
             * RelativeLayout rl = new RelativeLayout(this);
             * rl.setLayoutParams(mParams); pageViews.add(rl);
             */
            group = (ViewGroup) main.findViewById(R.id.viewGroup);
            viewPager = (ViewPager) main.findViewById(R.id.guidePages);
            vpAdapter = new ViewPagerAdapter(pageViews);
            viewPager.setAdapter(vpAdapter);
    
            viewPager.setOnPageChangeListener(this);
    
            initDots();
            setContentView(main);
    
        }
    
        private void initDots() {
            // TODO Auto-generated method stub
            dots = new ImageView[help_pics.length];
            for (int i = 0; i < help_pics.length; i++) {
                imageView = new ImageView(HelpActivity.this);
                imageView.setLayoutParams(new LayoutParams(
                        ViewGroup.LayoutParams.WRAP_CONTENT,
                        ViewGroup.LayoutParams.WRAP_CONTENT));
                imageView.setMaxHeight(20);
                imageView.setMaxWidth(40);
                imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
                imageView.setAdjustViewBounds(true);
                imageView.setPadding(10, 0, 10, 0);
                imageView.setImageResource(R.drawable.dot);
                dots[i] = imageView;
                dots[i].setEnabled(false);
                dots[i].setTag(i);
                dots[i].setOnClickListener(this);
                group.addView(dots[i]);
            }
            currentIndex = 0;
            dots[currentIndex].setEnabled(true);
        }
    
        private void setCurView(int position) {
            if (position < 0 || position >= help_pics.length) {
                return;
            }
            viewPager.setCurrentItem(position);
        }
    
        private void setCurDot(int positon) {
            if (positon < 0 || positon > help_pics.length - 1
                    || currentIndex == positon) {
                return;
            }
            dots[positon].setEnabled(true);
            dots[currentIndex].setEnabled(false);
            currentIndex = positon;
        }
    
        public class ViewPagerAdapter extends PagerAdapter {
    
            private List<View> views;
    
            public ViewPagerAdapter(List<View> views) {
                this.views = views;
            }
    
            @Override
            public void destroyItem(View arg0, int arg1, Object arg2) {
                ((ViewPager) arg0).removeView(views.get(arg1));
            }
    
            @Override
            public void finishUpdate(View arg0) {
                // TODO Auto-generated method stub
    
            }
    
            public int getCount() {
                if (views != null) {
                    return views.size();
                }
    
                return 0;
            }
    
            // 锟斤拷始锟斤拷arg1位锟矫的斤拷锟斤拷
            public Object instantiateItem(View arg0, int arg1) {
    
                ((ViewPager) arg0).addView(views.get(arg1));
    
                return views.get(arg1);
            }
    
            public boolean isViewFromObject(View arg0, Object arg1) {
                return (arg0 == arg1);
            }
    
            public void restoreState(Parcelable arg0, ClassLoader arg1) {
                // TODO Auto-generated method stub
    
            }
    
            public Parcelable saveState() {
                // TODO Auto-generated method stub
                return null;
            }
    
            public void startUpdate(View arg0) {
                // TODO Auto-generated method stub
    
            }
    
        }
    
        /**
         * 
         * @param arg0
         * @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageScrollStateChanged(int)
         */
        public void onPageScrollStateChanged(int arg0) {
            // TODO Auto-generated method stub
        }
    
        /**
         * (锟斤拷 Javadoc) Title: onPageScrolled Description:
         * 
         * @param arg0
         * @param arg1
         * @param arg2
         * @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageScrolled(int,
         *      float, int)
         */
        public void onPageScrolled(int arg0, float arg1, int arg2) {
            // TODO Auto-generated method stub
        }
    
        /**
         * 
         * @param arg0
         * @see android.support.v4.view.ViewPager.OnPageChangeListener#onPageSelected(int)
         */
        public void onPageSelected(int arg0) {
            // TODO Auto-generated method stub
            /*
             * if(arg0 == pageViews.size()-1){ viewPager.setCurrentItem (arg0 - 1);
             * ToHome(); return; }
             */
    
            setCurDot(arg0);
        }
    
        /**
         * (锟斤拷 Javadoc) Title: onClick Description:
         * 
         * @param v
         * @see android.view.View.OnClickListener#onClick(android.view.View)
         */
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int position = (Integer) v.getTag();
            if (position == GO_BTN) {
                ToHome();
            } else {
                setCurView(position);
                setCurDot(position);
            }
        }
    
        public void ToHome() {
            
             Intent intentHome = new Intent(HelpActivity.this, HomeActivity.class);
             HelpActivity.this.startActivity(intentHome);
             finish();
    
    
             
        }
    
        /**
         * 
         * @param keyCode
         * @param event
         * @return
         * @see android.app.Activity#onKeyDown(int, android.view.KeyEvent)
         */
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            // TODO Auto-generated method stub
            finish();
            return super.onKeyDown(keyCode, event);
        }
    }

    主布局如下

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
    
        <android.support.v4.view.ViewPager
            android:id="@+id/guidePages"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        </android.support.v4.view.ViewPager>
    
        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
    
            <LinearLayout
                android:id="@+id/viewGroup"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentBottom="true"
                android:layout_marginBottom="10dp"
                android:gravity="center_horizontal"
                android:orientation="horizontal" >       
            </LinearLayout>
        </RelativeLayout>
    
    </FrameLayout>

    测试结果如下

    如果有什么问题请留言,相互学习是自己提高和伙伴们共同的结果与积金。

  • 相关阅读:
    【mybatis】mybatis查询 结果 用map接收,无实体接收 + 关联子表 一并返回主子表的结果
    【mysql】 mybatis实现 主从表 left join 1:n 一对多 分页查询 主表从表都有查询条件 【mybatis】count 统计+JSON查询
    【mysql】获取某个表所有列名【mybatis】
    【mybatis】mybatis中insert操作,返回自增id
    【mybatis】从一个错误,看mybatis中的#和$的区别
    【java】单实例下的 流水号【21位】
    【mysql】新增列 时间戳
    【vue】搭建vue环境以及要安装的所有东西
    【小程序】小程序开发自定义组件的步骤>>>>>>>>>小程序开发过程中报错:jsEnginScriptError
    jmap错误:unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
  • 原文地址:https://www.cnblogs.com/jianrong-zheng/p/3413939.html
Copyright © 2020-2023  润新知