android 仿京东搜索栏随滑动切换图标及透明度渐变

参考自:http://blog.csdn.net/smart_yc/article/details/52575651
效果:
这里写图片描述

核心代码:

//headview为头布局;llSearch为搜索栏
recyclerview.addOnScrollListener(new RecyclerView.OnScrollListener() {
            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                //滑动的距离
                mDistanceY += dy;
                //上方图片的高度
                int headHeight = headView.getHeight();
                if (mDistanceY < headHeight) {
                    //滑动距离小于上方图片的1/2时,设置白色搜索按钮,透明度从0-255
                    if (mDistanceY < headHeight / 2) {
                        imgSearch.setImageResource(R.mipmap.search_white);
                        float scale = (float) mDistanceY / (headHeight / 2);
                        float alpha = scale * 255;
                        llSearch.getBackground().setAlpha((int) alpha);
                    } else {//滑动距离大于上方图片的1/2并小于上方图片时,设置黑色搜索按钮,透明度从0-255
                        imgSearch.setImageResource(R.mipmap.search_black);
                        float scale = (float) (mDistanceY - headHeight / 2) / (headHeight / 2);
                        float alpha = scale * 255;
                        llSearch.getBackground().setAlpha((int) alpha);
                    }
                } else {
                    //当快速往下滑时,llSearch最后设置的alpha不约等于255,测试的为132,所以要再设置
                    llSearch.getBackground().setAlpha(255);
                }
            }
        });

源码地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值