最终效果:
(viewpager方式和recyclerview方式实现效果相同,但是recyclerview没有转场动画)。
- view pager
viewpager写引导页是比较简单常见的,思路:
1.沉浸式状态栏。
2.创建viewpager并将图片数据通过adapter设置给viewpager
3.圆点指示器
4.设置切换动画
1.沉浸式状态栏之前有了解过,在没有用residemenu等第三方库的时候,在Android4.4以上通过一下方法能够成功。
/**
* 透明化状态栏
*/
public static void TranslucentStatusBar(Activity activity) {
activity.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT);
window.setNavigationBarColor(Color.TRANSPARENT);
}
}
2.创建viewpager等代码
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
viewPager = (ViewPager) findViewById(R.id.view_pager);
private List<View> mList = {…};
for (int i = 0; i < mImages.length; i++) {
ImageView imageView = new ImageView(this);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageResource(mImages[i]);
mList.add(imageView);
}
PagerAdapter pagerAdapter = new PagerAdapter() {
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mList.get(position));
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mList.get(position));
return mList.get(position);