1. 程式人生 > >android 仿京東搜尋欄隨滑動切換圖示及透明度漸變

android 仿京東搜尋欄隨滑動切換圖示及透明度漸變

核心程式碼:

//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); } } });

原始碼地址