此处为显示的布局:android
<!-- lang: xml -->数组
<?xml version="1.0" encoding="utf-8"?>ide
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" >布局
<android.support.v4.view.ViewPager android:id="@+id/navigation_page" android:layout_width="fill_parent" android:layout_height="fill_parent" /> <LinearLayout android:id="@+id/viewGroup" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="40dp" android:gravity="center_horizontal" android:orientation="horizontal" > </LinearLayout> </RelativeLayout>
</LinearLayout> code
此处为ViewPager中显示的布局:orm
<!-- lang: xml --> <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/img_navigation_page" android:layout_width="match_parent" android:layout_height="match_parent" android:scaleType="fitXY"/>xml
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <ImageView android:id="@+id/img_cancel" android:layout_width="25dp" android:layout_height="25dp" android:layout_alignParentRight="true" android:src="@drawable/ic_btn_chat_text" /> <Button android:id="@+id/btn_enter" android:layout_width="80dp" android:layout_height="30dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="80dp" android:background="@drawable/invite_btn_bg" android:text="@string/trend_navigation" android:textColor="@color/red" android:textSize="15sp" android:visibility="invisible" /> </RelativeLayout>
</FrameLayout> 代码部分: /** 装分页显示的view的数组 */ private ArrayList<View> pageViews; private ImageView imageView;事件
/** 将小圆点的图片用数组表示 */ private ImageView[] imageViews; // 包裹小圆点的LinearLayout private LinearLayout mViewPoints; //初始化要显示的页面,添加到view集合中 private void init(Context context) { // 将要分页显示的View装入数组中 pageViews = new ArrayList<View>(); pageViews.add(inflater.inflate(R.layout.trend_descript_navigation_item, null)); pageViews.add(inflater.inflate(R.layout.trend_descript_navigation_item, null)); pageViews.add(inflater.inflate(R.layout.trend_descript_navigation_item, null)); pageViews.add(inflater.inflate(R.layout.trend_descript_navigation_item, null)); pageViews.add(inflater.inflate(R.layout.trend_descript_navigation_item, null)); pageViews.add(inflater.inflate(R.layout.trend_descript_navigation_item, null)); }
//初始化显示的控件,有viewpager和显示导航点的linearlayout private void initView(Context context,View v) {图片
// 建立imageviews数组,大小是要显示的图片的数量 imageViews = new ImageView[pageViews.size()]; // 实例化小圆点的linearLayout和viewpager mViewPoints = (LinearLayout) v.findViewById(R.id.viewGroup); mViewPager = (ViewPager) v.findViewById(R.id.navigation_page); // 添加小圆点的图片 for (int i = 0; i < pageViews.size(); i++) { imageView = new ImageView(context); // 设置小圆点imageview的参数 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 10, 10); layoutParams.setMargins(5, 0, 5, 0); imageView.setLayoutParams(layoutParams);// 建立一个宽高均为20 的布局 // 将小圆点layout添加到数组中 imageViews[i] = imageView; // 默认选中的是第一张图片,此时第一个小圆点是选中状态,其余不是 if (i == 0) { imageViews[i] .setBackgroundResource(R.drawable.indicator_normal_pressed); } else { imageViews[i] .setBackgroundResource(R.drawable.indicator_normal); } // 将imageviews添加到小圆点视图组 mViewPoints.addView(imageViews[i]); } // 设置viewpager的适配器和监听事件 mViewPager.setAdapter(new NavigationPageAdapter()); mViewPager.setOnPageChangeListener(new NavigationPageChangeListener()); } //设置要显示的pageradapter类 private class NavigationPageAdapter extends PagerAdapter { // 销毁position位置的界面 @Override public void destroyItem(View v, int position, Object arg2) { ((ViewPager) v).removeView((View) arg2); } // 获取当前窗体界面数 @Override public int getCount() { return pageViews.size(); } // 初始化position位置的界面 @Override public Object instantiateItem(View v, int position) { View contentView = pageViews.get(position); /** *显示页面的相关操做 **/ ((ViewPager) v).addView(contentView, 0); return pageViews.get(position); } @Override public boolean isViewFromObject(View v, Object arg1) { return v == arg1; } @Override public void startUpdate(View arg0) { } @Override public int getItemPosition(Object object) { return super.getItemPosition(object); } } //设置viewpager滑动的事件,实现导航点的滚动
private class NavigationPageChangeListener implements OnPageChangeListener {ip
@Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { for (int i = 0; i < imageViews.length; i++) { imageViews[position] .setBackgroundResource(R.drawable.indicator_normal_pressed); // 不是当前选中的page,其小圆点设置为未选中的状态 if (position != i) { imageViews[i] .setBackgroundResource(R.drawable.indicator_normal); } } } }