`

ViewPager引导页根据滑动渐变背景色

阅读更多

1、主要依赖:
compile'com.android.support:support-v4:25.1.0'
compile 'com.jaeger.statusbaruitl:library:1.3.6'

状态栏依赖包使用非常方便,并且作者对4.4的版本做了适配,4.4以上的版本都可以使用这个效果。另外还可以对状态栏的颜色进行透明度的设置,其他还有些设置请各位看看作者的说明吧。
(感谢作者!)
statusbaruitl使用说明

工作步骤:
(1)、使用状态栏依赖库。
(2)、使用ArgbEvaluator 进行颜色值渐变的获取。
(3)、用设置全屏,适配版本4.4以下的效果。

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
{
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

3、代码部分
public class MainActivity extends Activity{

private RelativeLayout mRootLayout;

private ViewPager mViewPager;

private int colorBg[];

private ArgbEvaluator mArgbEvaluator;

private int barAlpha = 0;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT)
    {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
    setContentView(R.layout.activity_main);
    mRootLayout = (RelativeLayout)findViewById(R.id.rl_root);
    mViewPager = (ViewPager)findViewById(R.id.viewpager);
    StatusBarUtil.setColor(this, ContextCompat.getColor(this, R.color.light_green_500), barAlpha);
    mArgbEvaluator = new ArgbEvaluator();
    colorBg = getResources().getIntArray(R.array.splash_bg);
    final IntroPager introPager = new IntroPager(R.array.splash_icon, R.array.splash_desc);
    mViewPager.setAdapter(introPager);
    mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener()
    {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
        {
            int color = (int)mArgbEvaluator.evaluate(positionOffset, colorBg[position % colorBg.length],
                colorBg[(position + 1) % colorBg.length]);
            StatusBarUtil.setColor(MainActivity.this, color, barAlpha);
            mRootLayout.setBackgroundColor(color);
        }

        @Override
        public void onPageSelected(int position)
        {

        }

        @Override
        public void onPageScrollStateChanged(int state)
        {

        }  
    });
}

private class IntroPager extends PagerAdapter
{

    private String[] mDescs;

    private TypedArray mIcons;

    public IntroPager(int icoImage, int des)
    {
        mDescs = getResources().getStringArray(des);
        mIcons = getResources().obtainTypedArray(icoImage);
    }

    @Override
    public int getCount()
    {
        return mIcons.length();
    }

    @Override
    public boolean isViewFromObject(View view, Object object)
    {
        return view == object;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position)
    {
        View itemLayout = getLayoutInflater().inflate(R.layout.layout_app_intro, container, false);
        ImageView mImage = (ImageView)itemLayout.findViewById(R.id.iv_img);
        TextView mTextView = (TextView)itemLayout.findViewById(R.id.tv_desc);
        Button mButton = (Button)itemLayout.findViewById(R.id.btn_launch);
        mImage.setImageResource(mIcons.getResourceId(position, 0));
        mTextView.setText(mDescs[position]);
        if (position == getCount() - 1)
        {
            mButton.setVisibility(View.VISIBLE);
        }
        else
        {
            mButton.setVisibility(View.GONE);
        }
        container.addView(itemLayout);
        return itemLayout;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object)
    {
        container.removeView((View)object);
    }
}}


http://www.jianshu.com/p/a0dde1ebf600

ArgbEvaluator一个计算颜色渐变值的类
http://blog.csdn.net/u013581141/article/details/68063469
  • 大小: 1.6 MB
分享到:
评论

相关推荐

    ViewPager滑动式背景颜色随着滑动距离渐变

    viewpager的使用非常的方便,不过我在使用的时候遇到一个问题,就是切换view的时候通过获取到pagerchange然后调用animation来实现北京渐变的效果不明显,最后...现在viewpager的背景可以随着收拾的滑动平滑的颜色渐变。

    android ViewPager实现引导页效果

    ViewPager是Android SDK中的一个强大工具,它可以实现页面滑动浏览,非常适合创建这种交互式的引导页。 首先,我们需要了解ViewPager的基本概念。ViewPager是Android Support Library的一部分,它允许用户左右滑动...

    自定义ViewPager滑动同时显示颜色渐变并显示相邻Fragement边缘

    在这个自定义的实现中,我们关注的是如何在ViewPager滑动时添加颜色渐变效果,以及如何显示相邻Fragment的边缘。下面将详细探讨这个自定义实现涉及到的知识点。 1. **颜色渐变**: 在Android中,颜色渐变可以使用`...

    完美解决ViewPager两层嵌套滑动问题

    重写了子viewpager的方法,Childviewpager继承了viewpager。解决了父viewpager不能滑动或者子viewpager不能...可以使子viewpager滑动到最后一页后直接滑入父viewpager的fragment。修改子viewpager可参考local.xml 。

    ViewPager无限循环左右滑动效果

    在Android开发中,ViewPager是一个非常常用的组件,它用于展示可以左右滑动的页面序列,常用于实现类似Tab切换或者图片轮播的效果。本教程将详细讲解如何实现ViewPager的无限循环左右滑动效果。 首先,我们需要了解...

    Android ViewPager和Fragment 实现滑动切换页面

    在Android应用开发中,`ViewPager`和`Fragment`是两个重要的组件,它们常被结合使用以实现用户界面的滑动切换效果。`ViewPager`提供了一个可以左右滑动查看多个页面的容器,而`Fragment`则作为Activity的部分内容,...

    ViewPager引导页

    **ViewPager引导页** 在Android应用开发中,ViewPager是一种常用的组件,用于展示可滑动的页面集合。它非常适合创建如引导页、轮播图等需要多页面平滑切换的效果。本教程将详细介绍如何利用ViewPager和FrameLayout...

    ViewPager+Fragment左右滑动+上下滑动不冲突

    `ViewPager`是Android Support Library中的一个组件,它允许用户通过水平滑动来切换不同的页面,通常用于实现类似轮播图或者tab页的效果。`Fragment`则是Android应用中的一个可重用的UI组件,它可以独立于Activity...

    实现滑动ViewPager渐变背景色

    在Android应用开发中,创建吸引用户的交互体验是至关重要的,其中滑动ViewPager的渐变背景色效果就是一个很好的例子。这个效果能为用户带来流畅而动态的视觉体验,提高应用程序的吸引力。本文将深入探讨如何实现这个...

    Android ViewPager多页面滑动切换以及动画效果

    Android ViewPager实现仿QQ多页面滑动切换以及动画效果

    viewpager+fragment头部滑动

    标题“viewpager+fragment头部滑动”涉及到的是Android开发中的两个关键组件——ViewPager和Fragment的交互,特别是关于头部滑动的实现。在Android应用开发中,ViewPager通常用于展示多个页面,用户可以通过左右滑动...

    ViewPager实现五页面滑动切换

    在Android开发中,ViewPager是一个非常重要的组件,常用于实现页面间的滑动切换效果,比如在应用的引导页、Tab切换等场景。本教程将详细讲解如何利用ViewPager实现五页面的滑动切换,让读者深入了解这一功能的实现...

    Android ViewPager+Fragment,ViewPager标示跟着ViewPager滑动而同时滑动

    在Android开发中,`ViewPager`是一个非常常用的组件,它允许用户通过左右滑动来浏览多个页面,常用于实现Tab切换或者水平滚动的效果。`Fragment`则作为`Activity`的一部分,可以方便地在不同屏幕配置下管理界面内容...

    ViewPager背景渐变

    在许多App中,我们常常会看到类似知乎引导页那样的效果,即在ViewPager切换页面时,背景颜色会有渐变变化,从暗到亮或从亮到暗,这种效果能为用户提供更为流畅和沉浸式的体验。本篇文章将详细介绍如何在Android中...

    android viewpager进度条跟随页面滑动

    在Android开发中,`ViewPager` 是一个非常常用的组件,它允许用户通过左右滑动来浏览多个页面,常用于实现类似“Tab切换”或“轮播图”的效果。本示例项目"android viewpager进度条跟随页面滑动"是关于如何在`...

    ViewPager引导界面Demo

    在Android应用开发中,ViewPager是一种常用的组件,常用于实现页面滑动切换的效果,例如在启动应用时展示的引导界面(也称为新手引导、欢迎页)。本项目“ViewPager引导界面Demo”正是利用ViewPager来构建这样的功能...

    viewpager循环滑动自动滑动

    在Android开发中,`ViewPager` 是一个非常常用的组件,它允许用户通过左右滑动来切换不同的页面,常用于实现类似轮播图、标签页等效果。在这个“viewpager循环滑动自动滑动”的Demo中,开发者利用`ViewPager` 的特性...

    安卓欢迎界面引导页面viewpager相关-垂直滑动的viewpager.rar

    【标题】:“安卓欢迎界面引导页面viewpager相关-垂直滑动的viewpager.rar”涉及到的主要知识点是Android开发中的ViewPager组件的特殊用法,即实现垂直方向的滑动效果。在Android应用开发中,ViewPager通常用于水平...

    动态添加ViewPager无限循环滑动

    在Android开发中,ViewPager是一个非常常用的组件,常用于实现页面间的滑动切换,例如在启动引导页、TabLayout等场景。然而,标准的ViewPager并不支持无限循环滑动,即当滑动到首尾页时无法无缝地跳转回另一端。为了...

    viewPager指示器滑动渐变的颜色

    标题“viewPager指示器滑动渐变的颜色”表明我们要讨论的是如何在ViewPager滑动时,其指示器(通常是小圆点)颜色的渐变效果。这种效果可以提升用户界面的视觉吸引力和交互性。 ViewPager指示器通常是简单的图形...

Global site tag (gtag.js) - Google Analytics