PagerAdapter类
/**
* 作者:created by meixi
* 邮箱:[email protected]
* 日期:2018/7/23 17
*/
public class GuidePageAdapter extends PagerAdapter {
private List<View> views;
public GuidePageAdapter(List<View> views) {
this.views = views;
}
@Override
public int getCount() {
if (views != null) {
return views.size();
}
return 0;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return (arg0 == arg1);
}
@Override
public void destroyItem(View view, int arg1, Object object) {
((ViewPager) view).removeView(views.get(arg1));
}
@Override
public 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.ViewPager
android:id="@+id/vp_guide"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android: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" />
<!-- 设置一个黑色边框 -->
<stroke
android:width="1px"
android:color="@color/transparent" />
<!-- 设置四个圆角的半径 -->
<corners
android:radius="14dp"/>
<!-- 设置一下边距,让空间大一点 -->
<padding
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp" />
</shape>
导航类activity
public class ViewPagerActivity extends Activity {
private ViewPager vp;
private TextView textView;
@Override
protected 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() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
textView.setText(position+1+"/"+3);
}
@Override
public 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>