![【移動(dòng)應(yīng)用開發(fā)技術(shù)】android仿QQ個(gè)人主頁(yè)下拉回彈效果_第1頁(yè)](http://file4.renrendoc.com/view/917cd1903eefd30c340820eaa3324d31/917cd1903eefd30c340820eaa3324d311.gif)
![【移動(dòng)應(yīng)用開發(fā)技術(shù)】android仿QQ個(gè)人主頁(yè)下拉回彈效果_第2頁(yè)](http://file4.renrendoc.com/view/917cd1903eefd30c340820eaa3324d31/917cd1903eefd30c340820eaa3324d312.gif)
![【移動(dòng)應(yīng)用開發(fā)技術(shù)】android仿QQ個(gè)人主頁(yè)下拉回彈效果_第3頁(yè)](http://file4.renrendoc.com/view/917cd1903eefd30c340820eaa3324d31/917cd1903eefd30c340820eaa3324d313.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】android仿QQ個(gè)人主頁(yè)下拉回彈效果
先看效果:
效果不錯(cuò)吧!進(jìn)入主題之前,先了解ImageView的scaleType的center_crop,網(wǎng)絡(luò)上說的已經(jīng)很清楚了:以下抄自網(wǎng)絡(luò):1.Android:scaleType=”centerCrop”
以填滿整個(gè)ImageView為目的,將原圖的中心對(duì)準(zhǔn)ImageView的中心,等比例放大原圖,直到填滿ImageView為止(指的是ImageView的寬和高都要填滿),原圖超過ImageView的部分作裁剪處理。均衡的縮放圖像(保持圖像原始比例),使圖片的兩個(gè)坐標(biāo)(寬、高)都大于等于相應(yīng)的視圖坐標(biāo)(負(fù)的內(nèi)邊距)。圖像則位于視圖的中央。在XML中可以使用的語法:android:scaleType=”centerCrop”。不說廢話,直接進(jìn)入主題!!思路1.先將topView的布局和listview平級(jí),然后將topview以及topview包裹的imageView中傳listview,即一般是activity的layout
2.重寫listView的ontoucEvent()方法,但不做任何攔截,只在action時(shí),控制imageView以及topView的高度,使其重新layout然后重新布局就可以了。
3.以上是大概思路,這里具體分析:當(dāng)action_down時(shí)記錄其初始位置,action_move時(shí)得到dy,通過dy來判斷是上啦還是下拉:
(1)dy>0,則是下拉,不斷重新設(shè)置topView和imageView的高度,又因?yàn)閕mageView的scaleType=center_crop,所以圖片會(huì)按照這個(gè)規(guī)則進(jìn)行等比拉伸,當(dāng)?shù)竭_(dá)圖片最大時(shí)就會(huì)有不斷放大的過程
當(dāng)松開手或者手指移出屏幕外時(shí)(action_up|action_outside|action_cancel)時(shí)讓其回到初始位置,并伴著回彈過程,這里通過自定義動(dòng)畫讓其具備回彈效果
(2)dy<0,則是上拉,上推的過程,由于topView和Imageview不具備滾動(dòng)的效果,所以上推也是通過控制topView和ImageView的高度,并且當(dāng)TopVIew和ImageView滑出屏幕時(shí)就不在更改高度防止不斷的繪制,提高性能。
ok,大體思路就這樣。具體分析代碼如下:實(shí)現(xiàn):activity的xml
stretch_act.xml:
看看StretchListView:通過這個(gè)對(duì)外的方法,將topView以及ImageView的id傳進(jìn)來分析:重新ListView的onTouchEvent():只是進(jìn)行一些初始化操作:
1.startY:相對(duì)于屏幕頂部的高度
2.childAt0Top,獲取listview的第一個(gè)view的top距離、
3.ivInitHeight:獲取ImageView的初始高度,即剛進(jìn)來時(shí)的高度
ACTION_MOVE:當(dāng)下拉時(shí):主要條件如下:1.dy>0&&0==getFirstVisiblePosition()&&childAt0Top==
getChildAt(0).getTop()
意思是當(dāng)下拉時(shí),并且listview的第一個(gè)位置顯示全了,才能下拉放大圖片,這是避免,listview已經(jīng)發(fā)生滾動(dòng)了,需要回到初始位置才能下拉放大,否則會(huì)出現(xiàn),立即下拉放大,體驗(yàn)不好
2.當(dāng)上拉時(shí)主要條件
if(translationY<=0&&currHeight>0)
currHeight>0:當(dāng)前ImageView的高度,如果已經(jīng)滾動(dòng)到頂部或者超出,則不再進(jìn)行滾動(dòng),防止已經(jīng)滾出屏幕不可視了,還在進(jìn)行滾動(dòng)。
translationY<=0:這個(gè)值是滾動(dòng)的距離,這個(gè)距離不能超過ImageView的高度,由于上拉時(shí)dy是負(fù)值,所以要判斷是否小于0;其主要方法如下:
ACTION_UP:isChangedHeight:當(dāng)發(fā)生ImageView發(fā)生改變,并且是下拉時(shí),這是松開手或者手指移出屏幕,則讓其回彈到初始位置;這里是通過自定義動(dòng)畫來改變其變化的高度,達(dá)到回彈效果代碼如下其實(shí)主要是applyTransformation(floatinterpolatedTime,Transformationt)這個(gè)方法
主要是通過這個(gè)漸變因子interpolatedTime來控制,其值范圍是(0~1)所以計(jì)算漸變的高度如下
intdy=(int)((ivCurrHeight-ivInitHeight)*interpolatedTime);
然后一定要記得調(diào)用topView.requestLayout(),讓其重新布局繪制。這樣就完成了,所有代碼,也就一百行代碼左右,是不是很簡(jiǎn)單。而且通過這個(gè)demo,可以很好的拓展到scrollview中。注意:
網(wǎng)上有些demo是通過overScrollBy()這個(gè)方法中搞事情,因?yàn)槠渥詭y,還有一些其它的參數(shù),應(yīng)有盡有。但是由于android系統(tǒng)是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 制梁勞務(wù)合同范例
- 信貸資產(chǎn)信托合同范本
- 乙醇燃料的成本管理和降本增效
- 不帶司機(jī)租車合同范本
- 全款買車銷售合同范本
- 兼職模特合同范例
- 冷庫(kù)設(shè)備購(gòu)銷合同范本
- 農(nóng)村承包魚塘經(jīng)營(yíng)合同范例
- 電影制片人聘用合同范本
- 徐州白云區(qū)門面出租經(jīng)營(yíng)合同范本
- 2024年度體育賽事贊助合同:運(yùn)動(dòng)員代言與贊助權(quán)益2篇
- 智研咨詢發(fā)布:2024年中國(guó)新疫苗行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來前景分析報(bào)告
- 2025屆西藏林芝一中高三第二次診斷性檢測(cè)英語試卷含解析
- 中國(guó)傳統(tǒng)文化非遺文化中國(guó)剪紙介紹2
- 藥企銷售總經(jīng)理競(jìng)聘
- 開封市第一屆職業(yè)技能大賽健康照護(hù)項(xiàng)目技術(shù)文件(國(guó)賽)
- 飲酒與糖尿病
- 公路電子收費(fèi)系統(tǒng)安裝合同范本
- 醫(yī)院培訓(xùn)課件:《傷口評(píng)估與測(cè)量》
- 期末試卷(試題)-2024-2025學(xué)年四年級(jí)上冊(cè)數(shù)學(xué)滬教版
- 《第一單元口語交際:即興發(fā)言》教案-2023-2024學(xué)年六年級(jí)下冊(cè)語文統(tǒng)編版
評(píng)論
0/150
提交評(píng)論