9.ParallaxImageView 仿QQ空間頭部視差效果

頭部視差效果

  • 1.案例演示:


    頭部視差效果.gif
  • 2.實(shí)現(xiàn)邏輯:

  • 1.在ListView中添加頭部后,再調(diào)用overScrollBy方法()召耘,在里面滑動(dòng)的時(shí)候不斷增加ImageView高度直到達(dá)到最高高度停止落君;
    ==overScrollBy方法()這個(gè)方法先不簡(jiǎn)介消请,往后看杂腰!==
    //不斷增加ImageView高度
    int mHeaderHeight=mImageViewHeader.getHeight()-deltaY/3;
  • 2.最大高度的計(jì)算為:當(dāng)前圖片的高度和ImageView的高度進(jìn)行對(duì)比,如果圖片的高度大于ImageView的高度則最大高度為圖片自身高度趾娃,否則為ImageView高度的2倍缭嫡;
//獲取圖片高度:
    int pictureHeight=mImageViewHeader.getDrawable().getIntrinsicHeight();
    
//獲取控件高度:
//在onLayout執(zhí)行完畢后調(diào)用該方法,可以準(zhǔn)確獲取到控件高度:
    mImageViewHeader.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            mImageViewHeader.getViewTreeObserver().removeOnGlobalLayoutListener(this);
            mOrignalHeight=mImageViewHeader.getHeight();
            //設(shè)置最大高度:
            int MaxHeight=mOrignalHeight>pictureHeight ? mOrignalHeight*2 : pictureHeight;
        }
    });
  • 3.下拉改變圖片的高度:介紹下onScrollOverBy()
    /**
     * 在listview滑動(dòng)到頭的時(shí)候執(zhí)行抬闷,可以獲取到繼續(xù)滑動(dòng)的距離和方向
     * deltaX:繼續(xù)滑動(dòng)x方向的距離
     * deltaY:繼續(xù)滑動(dòng)y方向的距離     負(fù):表示頂部到頭   正:表示底部到頭
     * maxOverScrollX:x方向最大可以滾動(dòng)的距離
     * maxOverScrollY:y方向最大可以滾動(dòng)的距離
     * isTouchEvent: true: 是手指拖動(dòng)滑動(dòng)     false:表示fling靠慣性滑動(dòng);
     */

    //上面提到已經(jīng)在onScrollOverBy()里面獲取到了下拉時(shí)控件的高度和最大高度
    @Override
    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
        if (deltaY<0 && isTouchEvent){//deltaY<0是下拉妇蛀,isTouchEvent=true表明是手指下拉
            if (mImageViewHeader!=null){
                 mHeaderHeight=mImageViewHeader.getHeight()-deltaY/3;
                if (mHeaderHeight>MaxHeight) mHeaderHeight=MaxHeight;

               //下拉后更新圖片高度:
                mImageViewHeader.getLayoutParams().height=mHeaderHeight;
                mImageViewHeader.requestLayout();//更新
            }
        }
        return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent);
    }
  • 4.松手后還原圖片高度:主要是通過ValueAnimator屬性動(dòng)畫將圖片高度還原耕突;
@Override
    public boolean onTouchEvent(MotionEvent ev) {
        if (ev.getAction()==MotionEvent.ACTION_UP){//松手
            //松手后緩慢讓圖片還原自身高度:
            ValueAnimator valueAnimator=ValueAnimator.ofInt(mImageViewHeader.getHeight(),mOrignalHeight);
            valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
                @Override
                public void onAnimationUpdate(ValueAnimator animation) {
                    int height= (int) animation.getAnimatedValue();
                    mImageViewHeader.getLayoutParams().height=height;
                    mImageViewHeader.requestLayout();//更新
                }
            });
            valueAnimator.setDuration(350);
            //增加滑動(dòng)到頭的彈性收縮特效
            valueAnimator.setInterpolator(new OvershootInterpolator(5));
            valueAnimator.start();
        }
        return super.onTouchEvent(ev);
    }
  • 5.細(xì)節(jié)處理:例如取消ListView滑動(dòng)到頭的藍(lán)色陰影、增加滑動(dòng)到頭的彈性收縮特效等评架;
listview.setOverScrollMode(ListView.OVER_SCROLL_NERVER);

  • 3.GitHub項(xiàng)目源碼:戳我
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末眷茁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子纵诞,更是在濱河造成了極大的恐慌上祈,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浙芙,死亡現(xiàn)場(chǎng)離奇詭異登刺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嗡呼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門纸俭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人南窗,你說我怎么就攤上這事揍很。” “怎么了万伤?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵窒悔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我敌买,道長(zhǎng)蛉迹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任放妈,我火速辦了婚禮,結(jié)果婚禮上荐操,老公的妹妹穿的比我還像新娘芜抒。我一直安慰自己,他們只是感情好托启,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布宅倒。 她就那樣靜靜地躺著,像睡著了一般屯耸。 火紅的嫁衣襯著肌膚如雪拐迁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天疗绣,我揣著相機(jī)與錄音线召,去河邊找鬼。 笑死多矮,一個(gè)胖子當(dāng)著我的面吹牛缓淹,可吹牛的內(nèi)容都是我干的哈打。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼讯壶,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼料仗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伏蚊,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤立轧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后躏吊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氛改,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年颜阐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了平窘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凳怨,死狀恐怖瑰艘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肤舞,我是刑警寧澤紫新,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站李剖,受9級(jí)特大地震影響芒率,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜篙顺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一熄守、第九天 我趴在偏房一處隱蔽的房頂上張望踊谋。 院中可真熱鬧,春花似錦、人聲如沸偶妖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽您市。三九已至,卻和暖如春琴儿,著一層夾襖步出監(jiān)牢的瞬間段化,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工造成, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留显熏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓晒屎,卻偏偏與公主長(zhǎng)得像佃延,于是被迫代替她去往敵國(guó)和親现诀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 前面已經(jīng)實(shí)現(xiàn)過仿QQ的List抽屜效果以及仿QQ未讀消息拖拽效果履肃,具體請(qǐng)見:Android自定義控件:類QQ抽屜效...
    Horrarndoo閱讀 869評(píng)論 0 3
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,092評(píng)論 1 32
  • 先來看一下效果: 一仔沿、設(shè)計(jì)思路與實(shí)現(xiàn)步驟1、本例是通過重寫ListView來實(shí)現(xiàn)的尺棋,頭部的圖片是ListView的...
    grr1314閱讀 1,116評(píng)論 0 3
  • 項(xiàng)目中用到了商品詳情展示效果膘螟,所以立馬想到借鑒天貓商品詳情界面成福,看了天貓的詳情頁面想到了兩套解決方案。1荆残,使用Li...
    ___ayo閱讀 9,590評(píng)論 10 23
  • 今天大三最后一節(jié)課結(jié)束了奴艾,還外加了一場(chǎng)突如其來的開卷考。這門課的范圍真是有銀河系辣么大了内斯,重要是這門課基本沒聽課蕴潦,...
    漾漾照閱讀 185評(píng)論 0 0