大家好,这讲给大家带来的是侧滑页面的使用,我们在使用刚下载的app,第一次打开app运用的时候,就会有侧滑页面的出现,它主要是介绍本款的app的功能,以及有关app的东西。当你第二次打开时,它就不会再出现了。viewPager功能实现就是这样,相信大家脑里也有清晰的画面,想象不到位,没关系。我下面截有图片,加深对viewPager印象。
看完这三幅图片,大家肯定心里觉得这是很难做的,其实不难,能正确使用ViewPager工具,分分钟搞定。
1.res/layout/activity_guide.xml布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
//viewPager是v4下的工具类,所有它的控件属性与其他大有不同
<android.support.v4.view.ViewPager
android:id="@+id/guide_vp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
//把开始体验按钮隐藏,等需要显示在显示出来,这个控件使用了选择器,在下文我会详解
<Button
android:id="@+id/guide_btn"
android:visibility="invisible"
android:layout_width="135dp"
android:layout_height="45dp"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:layout_marginBottom="40dp"
android:background="@drawable/guide_drawable_select"
android:text="开始体验"
android:onClick="enterSystem"
android:textColor=“#ffffffff" />
</RelativeLayout>
2.GuideActivity.java
public class GuideActivity extends Activity {
private ViewPager mViewPager;
private List<ImageView> mPagerList;//定义List,类型是ImageView
private Context context;
private Button mGuideBtn;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去标题
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_guide);
//初始化控件
context = this;
mViewPager = (ViewPager) findViewById(R.id.guide_vp);
mGuideBtn = (Button) findViewById(R.id.guide_btn);
//初始化集合List,类型是ImageView
mPagerList = new ArrayList<ImageView>();
//第一个页面图片
ImageView pageImage1 = new ImageView(context);
//设置背景图片
pageImage1.setBackgroundResource(R.drawable.guide_1);
//ImageView添加到集合List里
mPagerList.add(pageImage1);
//第二个页面图片
ImageView pageImage2 = new ImageView(context);
pageImage2.setBackgroundResource(R.drawable.guide_2);
mPagerList.add(pageImage2);
//第三个页面图片
ImageView pageImage3 = new ImageView(context);
pageImage3.setBackgroundResource(R.drawable.guide_3);
mPagerList.add(pageImage3);
//设置mViewPager页面适配器,好比listVIew的适配器,list.setAdapter()
mViewPager.setAdapter(new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
//返回 视图等于对象
return arg0 == arg1;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
//集合的个数
return mPagerList == null ? 0 : mPagerList.size();
}
//销毁方法
public void destroyItem(ViewGroup container, int position,
Object object) {
//删除的是一个容器,这里指的是ImageView
container.removeView(mPagerList.get(position));
//没有返回值,说明这里没有ViewPager了
}
//实例化方法,也就是添加在容器里添加视图
public Object instantiateItem(ViewGroup container, int position) {
//添加视图,也是Imageview
container.addView(mPagerList.get(position));
//返回操作页面
return mPagerList.get(position);
}
});
//viewPager监听交互,改变页面的监听
mViewPager.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageSelected(int position) {
//获取总页面索引号
int page = mPagerList.size() - 1;
//判断,当下标值等于总页面的索引号时
if (page == position) {
//显示按钮
mGuideBtn.setVisibility(View.VISIBLE);
} else {
//按钮消失
mGuideBtn.setVisibility(View.GONE);
}
}
//页面滑动
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
//页面状态改变
public void onPageScrollStateChanged(int arg0) {
}
});
}
//点击事件
public void enterSystem(View v) {
Intent intent = new Intent(GuideActivity.this, SplashActivity.class);
startActivity(intent);
finish();
}
}
3.res/drawable/guide_drawable_select.xml选择器
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//点击的时候显示的图片
<item android:drawable="@drawable/ticket_btn_cancel_normal" android:state_pressed="true"></item>
//正常的时候显示的图片
<item android:drawable="@drawable/ticket_btn_cancel_pressed" ></item>
</selector>
好了,这讲就到了,viewPager的使用,大家以后开发经常会用到,留心学习。88