先看看效果图:

主要代码:

package com.example.introducedemo;import java.util.ArrayList;import android.app.Activity;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.LayoutInflater;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.view.Window;import android.widget.ImageView;import android.widget.LinearLayout;public class MainActivity extends Activity {    private ImageView mImageView;    View mView;    private ArrayList<View> mPageViews;    // 定义LayoutInflater    LayoutInflater mInflater;    private ViewPager mViewPager;    LinearLayout mLinearLayout;    private ImageView[] mImageViews;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        // 设置窗口无标题        requestWindowFeature(Window.FEATURE_NO_TITLE);        mInflater = getLayoutInflater();        mPageViews = new ArrayList<View>();        mPageViews.add(mInflater.inflate(R.layout.view_01, null));        mPageViews.add(mInflater.inflate(R.layout.view_02, null));        mPageViews.add(mInflater.inflate(R.layout.view_03, null));        mImageViews = new ImageView[mPageViews.size()];        mView = mInflater.inflate(R.layout.activity_main, null);        mViewPager = (ViewPager) mView.findViewById(R.id.myviewpager);        mLinearLayout = (LinearLayout) mView                .findViewById(R.id.mybottomviewgroup);        for (int i = 0; i < mImageViews.length; i++) {            mImageView = new ImageView(MainActivity.this);            mImageView.setLayoutParams(new LayoutParams(10, 10));            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(                    LinearLayout.LayoutParams.WRAP_CONTENT,                    LinearLayout.LayoutParams.WRAP_CONTENT);            lp.setMargins(10, 0, 10, 0);            mImageView.setLayoutParams(lp);            if (i == 0) {                mImageView.setBackgroundResource(R.drawable.page_indicator_focused);            } else {                mImageView                        .setBackgroundResource(R.drawable.page_indicator_unfocused);            }            mImageViews[i] = mImageView;            // 把指示作用的远点图片加入底部的视图中            mLinearLayout.addView(mImageViews[i]);        }        setContentView(mView);        mViewPager.setAdapter(new MyPagerAdapter());        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {            public void onPageSelected(int arg0) {                for (int i = 0; i < mImageViews.length; i++) {                    if (i == arg0) {                        mImageViews[i]                                .setBackgroundResource(R.drawable.page_indicator_focused);                    } else {                        mImageViews[i]                                .setBackgroundResource(R.drawable.page_indicator_unfocused);                    }                }            }            @Override            public void onPageScrolled(int arg0, float arg1, int arg2) {                // TODO Auto-generated method stub            }            @Override            public void onPageScrollStateChanged(int arg0) {                // TODO Auto-generated method stub            }        });    }    class MyPagerAdapter extends PagerAdapter {        @Override        public int getCount() {            return mPageViews.size();        }        @Override        public boolean isViewFromObject(View arg0, Object arg1) {            return arg0 == arg1;        }        @Override        public int getItemPosition(Object object) {            // TODO Auto-generated method stub            return super.getItemPosition(object);        }        @Override        public void destroyItem(View arg0, int arg1, Object arg2) {            // TODO Auto-generated method stub            ((ViewPager) arg0).removeView(mPageViews.get(arg1));        }        @Override        public Object instantiateItem(View arg0, int arg1) {            // TODO Auto-generated method stub            ((ViewPager) arg0).addView(mPageViews.get(arg1));            return mPageViews.get(arg1);        }        @Override        public void restoreState(Parcelable arg0, ClassLoader arg1) {            // TODO Auto-generated method stub        }        @Override        public Parcelable saveState() {            // TODO Auto-generated method stub            return null;        }        @Override        public void startUpdate(View arg0) {            // TODO Auto-generated method stub        }        @Override        public void finishUpdate(View arg0) {            // TODO Auto-generated method stub        }    }}

CSDN下载地址:http://download.csdn.net/detail/wenwei19861106/4860072

更多相关文章

  1. android 自定义商城app价格正序倒序控件
  2. 自定义控件5---TypedArray和AttributeSet
  3. android 图表引擎AChartEngine(柱状图)
  4. 编译Android(安卓)4.0时遇到的问题汇总
  5. Android(安卓)自定义系统菜单的背景源码
  6. Android(安卓)之 GrideView网格视图
  7. Android(安卓)自定义Progress Bar
  8. android创建自定义对话框
  9. android 验证码 (canvas)

随机推荐

  1. Python编程必备5大工具,你用过几个?
  2. HBase应用实践专场-HBase问题排查思路
  3. 中国HBase技术社区第五届MeetUp
  4. Spark 从 Kafka 读数并发问题
  5. 简单介绍虚拟化技术vs容器化(2)
  6. Apache Flink状态管理和容错机制介绍
  7. Linux由几部分组成?Linux系统结构介绍!
  8. Flink在唯品会的实践
  9. Go语言学习8-接口类型
  10. MySql基础查询-流程控制函数