美文网首页
android 界面滑动顶部标题栏颜色渐变

android 界面滑动顶部标题栏颜色渐变

作者: 小婷婷tt | 来源:发表于2019-05-27 16:26 被阅读0次

    使用RecyclerView进行滑动监听

    @BindView(R.id.activity_myaccelate_recycler)

    RecyclerViewmRecyclerView;

    @BindView(R.id.activity_myaccelate_statusbar)

    LinearLayoutliStatusbar;//状态栏布局

    @BindView(R.id.activity_myaccelate_toptitle)

    RelativeLayoutrlTopTitle;//顶部标题栏布局

    @BindView(R.id.activity_myaccelate_line)

    ViewrlTopTitleLine;//顶部标题栏布局分割线

    @BindView(R.id.activity_myaccelate_leftbtn)

    TextViewbtnLeft;//标题栏-左返回键

    @BindView(R.id.activity_myaccelate_title)

    TextViewtvTitle;//标题栏-标题

    @BindView(R.id.activity_myaccelate_tvright)

    TextViewbtnRight;//标题栏-右按钮

    private int overallXScroll =0;

    private int height =640;// 滑动开始变色的高,真实项目中此高度是由广告轮播或其他首页view高度决定

    mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

    @Override

        public void onScrollStateChanged(RecyclerView recyclerView,int newState) {

    super.onScrollStateChanged(recyclerView, newState);

    }

    @Override

        public void onScrolled(RecyclerView recyclerView,int dx,int dy) {

    super.onScrolled(recyclerView, dx, dy);

    int alpha =0;

    overallXScroll =overallXScroll + dy;// 累加y值 解决滑动一半y值为0

            if (overallXScroll <=0) {//设置标题的背景颜色

                rlTopTitle.setBackgroundColor(Color.argb(0,252,252,252));

    liStatusbar.setBackgroundColor(Color.argb(0,252,252,252));

    tvTitle.setTextColor(Color.argb(255,255,255,255));

    btnRight.setTextColor(Color.argb(255,255,255,255));

    btnLeft.setBackgroundResource(R.drawable.title_whiteleft_selector);

    rlTopTitleLine.setVisibility(View.GONE);

    }else if (overallXScroll >0 &&overallXScroll <=height) {//滑动距离小于banner图的高度时,设置背景和字体颜色颜色透明度渐变

                float scale = (float)overallXScroll /height;

    alpha = (int) (255 * scale);

    rlTopTitle.setBackgroundColor(Color.argb(alpha,252,252,252));

    liStatusbar.setBackgroundColor(Color.argb(alpha,252,252,252));

    tvTitle.setTextColor(Color.argb(alpha,0,0,0));

    btnRight.setTextColor(Color.argb(alpha,0,0,0));

    btnLeft.setBackgroundResource(R.drawable.title_left_selector);

    rlTopTitleLine.setVisibility(View.GONE);

    }else {

    if (alpha <255) {

    rlTopTitle.setBackgroundColor(Color.argb(255,252,252,252));

    liStatusbar.setBackgroundColor(Color.argb(255,252,252,252));

    tvTitle.setTextColor(Color.argb(255,0,0,0));

    btnRight.setTextColor(Color.argb(255,0,0,0));

    }

    btnLeft.setBackgroundResource(R.drawable.title_left_selector);

    rlTopTitleLine.setVisibility(View.VISIBLE);

    }

    }

    });

    相关文章

      网友评论

          本文标题:android 界面滑动顶部标题栏颜色渐变

          本文链接:https://www.haomeiwen.com/subject/ptnzbqtx.html