Android頭部視差效果的實現方式

2021-07-14 21:47:00 字數 3125 閱讀 7459

實現了類似qq空間頭部的彈性效果,手指向下滑動頭部展示出更多部分

廢話不說,上**:

自定義的parallaxlistview:

package com.wd.demo.parallax;

import android.animation.valueanimator;

import android.animation.valueanimator.animatorupdatelistener;

import android.annotation.suppresslint;

import android.content.context;

import android.util.attributeset;

import android.view.motionevent;

import android.view.viewtreeobserver.ongloballayoutlistener;

import android.view.animation.overshootinterpolator;

import android.widget.imageview;

import android.widget.listview;

import android.widget.relativelayout;

public

class

parallaxlistview

extends

listview

public

parallaxlistview(context context, attributeset attrs)

public

parallaxlistview(context context, attributeset attrs, int defstyle)

/*** 對外提供乙個傳入的方式

* *@param parallaximageview

*/public

void

setparallaximageview(final imageview parallaximageview)

});}

/*** 重新overscrollby方法 該方法是在listview滑動到頭的時候呼叫,並且可以在該方法中獲取滑動的距離 deltay: 繼續滑動的距離

* 正值:表示底部到頭 負值:頂部到頭

*/@suppresslint("newapi")

@override

protected

boolean

overscrollby(int deltax, int deltay, int scrollx,

int scrolly, int scrollrangex, int scrollrangey,

int maxoverscrollx, int maxoverscrolly, boolean istouchevent)

return

super.overscrollby(deltax, deltay, scrollx, scrolly,

scrollrangex, scrollrangey, maxoverscrollx, maxoverscrolly,

istouchevent);

}@suppresslint("newapi")

@override

public

boolean

ontouchevent(motionevent ev)

});animator.setinterpolator(new overshootinterpolator());

animator.setduration(400);

animator.start();

}return

super.ontouchevent(ev);

}}

parallaxadapter:

package com.wd.demo.parallax;

import android.content.context;

import android.graphics.color;

import android.view.view;

import android.view.viewgroup;

import android.widget.baseadapter;

import android.widget.textview;

public

class

parallaxadapter

extends

baseadapter

@override

public

intgetcount()

@override

public object getitem(int position)

@override

public

long

getitemid(int position)

@override

public view getview(int position, view convertview, viewgroup parent)

}

activity中使用:

package com.wd.demo.parallax;

import android.annotation.suppresslint;

import android.os.bundle;

import android.view.view;

import android.widget.abslistview;

import android.widget.imageview;

public

class

mainactivity

extends

activity

/*** 新增資料

*/private

void

initdata()

/*** 新增布局

*/@suppresslint("newapi") private

void

initview()

}

頁面滾動視差效果的實現

今天在發現乙個視差滾動的例子,想自己實現一下視差效果。開啟例子 首先呢,我們可以選擇監聽scroll和mousewheel事件,說說各自的優缺點。scroll 優點 當頁面滾動到邊界時,不會觸發事件。缺點 需要自己判斷滑鼠滾動方向。mousewheel 優點 可以直接知道滾動方向。缺點 當到達頁面邊...

模仿Parallax寫乙個簡單的視差效果

前言 之前寫專案的時候乙個需求效果是兩個元素需要有乙個視差特效,使用的是jquery的parallax外掛程式,只是為了學習一下,主要原理就是通過監聽滑鼠移動事件,來修改指定元素的left,top值。樣例如下 dom結構 希望哪個元素有視差效果,就設定clss類為parallax item,設定da...

六款幫助你實現驚豔視差滾動效果的jQuery外掛程式

視差 parallax 是指從不同的點看乙個物體時形成的視覺差異,這個名詞是源自希臘文的 parallaxis 意思是改變 在網頁設計中,視差滾動 parallax scrolling 是當下流行的網頁設計技術,通過讓多層背景以不同的速度或者不同的方向移動來形成非常有趣的 3d 運動效果。下面是一些...