PagerAdapter类
/*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/7/23 17*/public class GuidePageAdapter extends PagerAdapter {private List<View> views;public GuidePageAdapter(List<View> views) {this.views = views;}@Overridepublic int getCount() {if (views != null) {return views.size();}return 0;}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return (arg0 == arg1);}@Overridepublic void destroyItem(View view, int arg1, Object object) {((ViewPager) view).removeView(views.get(arg1));}@Overridepublic Object instantiateItem(final View view, final int current) {((ViewPager) view).addView(views.get(current));return views.get(current);}}
导航类layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/white"android:orientation="vertical" ><android.support.v4.view.ViewPagerandroid:id="@+id/vp_guide"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/myposition"android:layout_width="40dp"android:layout_height="20dp"android:layout_marginTop="10dp"android:background="@drawable/onetebg"android:textColor="@color/titleBlue"android:gravity="center"android:layout_alignParentRight="true"android:text="1"/></RelativeLayout>
onetebg背景样式
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"><!-- 设置透明背景色 --><solid android:color="@color/white" /><!-- 设置一个黑色边框 --><strokeandroid:width="1px"android:color="@color/transparent" /><!-- 设置四个圆角的半径 --><cornersandroid:radius="14dp"/><!-- 设置一下边距,让空间大一点 --><paddingandroid:bottom="0dp"android:left="0dp"android:right="0dp"android:top="0dp" /></shape>
导航类activity
public class ViewPagerActivity extends Activity {private ViewPager vp;private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.guide_activity);initViews();initData();}public void initViews(){vp = (ViewPager) findViewById(R.id.vp_guide);textView =(TextView)findViewById(R.id.myposition);}public void initData(){List<View> guideList = new ArrayList<>();guideList.add(getGuideView(R.drawable.guide_1));guideList.add(getGuideView(R.drawable.guide_2));guideList.add(getGuideView(R.drawable.guide_3));RelativeLayout rl = new RelativeLayout(this);
// rl.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
// rl.setBackgroundColor(this.getResources().getColor(R.color.transparent));
// guideList.add(rl);Log.i("lgq","sss==="+MyApplication.getnScreenWidth()+"..."+ViewGroup.LayoutParams.MATCH_PARENT);GuidePageAdapter vpAdapter = new GuidePageAdapter(guideList);vp.setAdapter(vpAdapter);vp.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}@Overridepublic void onPageSelected(int position) {textView.setText(position+1+"/"+3);}@Overridepublic void onPageScrollStateChanged(int state) {}});}private View getGuideView(int nDrawableID) {ImageView iv = new ImageView(this);ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);iv.setLayoutParams(lp);iv.setBackground(this.getResources().getDrawable(R.drawable.guide_1));iv.setScaleType(ImageView.ScaleType.CENTER_INSIDE);iv.setImageResource(nDrawableID);return iv;}
}
activity配置属性
<activity android:name=".ViewPagerActivity"android:configChanges="orientation|keyboardHidden"android:label="@string/app_name"android:screenOrientation="portrait"android:windowSoftInputMode="stateHidden|adjustPan"></activity>