日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android 實現(xiàn)的下拉刷新效果

瀏覽:115日期:2022-09-17 17:46:51

下面是自己實現(xiàn)的效果:

Android 實現(xiàn)的下拉刷新效果

1、分析

可以將動畫分解成:

睜眼毛驢繞著中心地球旋轉(zhuǎn),并且在到達(dá)地球中心時,切換為閉眼毛驢,最后發(fā)射出去

地球自我旋轉(zhuǎn),隨著下拉而緩緩上升,達(dá)到半徑距離后停止上升

一顆上下來回移動的衛(wèi)星

2、實現(xiàn)

(1)下載趕集app,然后將其后綴名改為zip解壓獲取我們需要的資源圖片:

Android 實現(xiàn)的下拉刷新效果

(2) 我們先實現(xiàn)衛(wèi)星的上下移動

核心代碼:

@Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);Matrix matrixPlanet = new Matrix();matrixPlanet.setScale(0.4f, 0.4f);matrixPlanet.postTranslate(locationX / 2 * 3, locationY /4);matrixPlanet.postTranslate(0, upDateY);canvas.drawBitmap(flyingPlanet,matrixPlanet,null); } public void startTranslatePlanet(int duration){ValueAnimator valueAnimator = new ValueAnimator();valueAnimator.setFloatValues(-50.0f, 50.0f);valueAnimator.setDuration(duration);valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) {upDateY = (float) animation.getAnimatedValue();invalidate(); }});valueAnimator.setRepeatCount(ValueAnimator.INFINITE);valueAnimator.setRepeatMode(ValueAnimator.REVERSE);valueAnimator.setInterpolator(new LinearInterpolator());valueAnimator.start(); }

思想:使用Matrix來設(shè)置圖形變換,調(diào)用setScale()設(shè)置Bitmap縮放大小,然后調(diào)用postTranslate()將Bitmap平移到衛(wèi)星的初始位置。最后使用ValueAnimator計算衛(wèi)星上下移動的距離,再調(diào)用postTranslate()即可。

(3)地球自我旋轉(zhuǎn),隨著下拉而緩緩上升,達(dá)到半徑距離后停止上升。

核心代碼:

@Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);Matrix matrixBall = new Matrix();matrixBall.setScale(0.2f, 0.2f);if ((locationY + upDateY) > (locationY - flyingBall_Height / 2)) { matrixBall.postTranslate(locationX - flyingBall_Width / 2, locationY + upDateY); matrixBall.postRotate(degreeBall, locationX, (locationY +upDateY + flyingBall_Height /2) );}else { matrixBall.postTranslate(locationX - flyingBall_Width / 2, locationY - flyingBall_Height / 2); matrixBall.postRotate(degreeBall, locationX, locationY);}canvas.drawBitmap(flyingBall, matrixBall, null);canvas.drawBitmap(cloudBig , null , rectfCloudBig , null);canvas.drawBitmap(cloudSmall , null , rectfCloudSmall ,null); } public void startBallAnim(long duration) {ValueAnimator valueAnimator = new ValueAnimator();valueAnimator.setFloatValues(0.0f, 360.0f);valueAnimator.setDuration(duration);valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) {degreeBall = (float) animation.getAnimatedValue();invalidate(); }});valueAnimator.setRepeatCount(ValueAnimator.INFINITE);valueAnimator.setInterpolator(new LinearInterpolator());valueAnimator.start(); } public void UpBall(float offsetY){if (upDateY!=offsetY) { upDateY = offsetY; invalidate();} } public void accelerateBall(long duration) {clearAnimation();startBallAnim(duration); }

思想:同樣使用Matrix,先設(shè)置縮放大小。調(diào)用

matrixBall.postTranslate(locationX - flyingBall_Width / 2, locationY + upDateY);

將bitmap隱藏在view可視范圍的下方,然后通過下拉刷新列表獲取下拉刷新的Y坐標(biāo)的改變量,調(diào)用postTranslate()上移改變量大小的距離即可。自轉(zhuǎn)動畫的實現(xiàn),就是調(diào)用postRotate()方法 使用ValueAnimator 獲取改變量。因為地球是上升的,所以我們需要動態(tài)的設(shè)置旋轉(zhuǎn)的中心。

matrixBall.postRotate(degreeBall, locationX, (locationY +upDateY + flyingBall_Height /2) );

只需要改變減去下拉刷新列表獲取下拉刷新的Y坐標(biāo)的改變量就可以了。

(3) 睜眼毛驢繞著中心地球旋轉(zhuǎn),并且在到達(dá)地球中心時,切換為閉眼毛驢,最后發(fā)射出去

核心代碼:

@Override protected void onDraw(Canvas canvas) {super.onDraw(canvas);Matrix matrix = new Matrix();matrix.setScale(0.3f, 0.3f);matrix.postTranslate(pointDonkey.getDx(), pointDonkey.getDy());matrix.postRotate(degree, locationX, locationY + flyingBall_Width / 2);matrix.postTranslate(0 , upDateY);canvas.drawBitmap(flyingDonkey, matrix, null); }

思想:與上面一樣,先調(diào)用setScale()設(shè)置縮放大小,在進(jìn)行平移旋轉(zhuǎn)操作的時候。

matrix.postRotate(degree, locationX, locationY + flyingBall_Width / 2); matrix.postTranslate(0 , upDateY);

我們先繞著還沒有移動的地球旋轉(zhuǎn),然后調(diào)用postTranslate()將其與地球一起上升。

源碼地址:

https://github.com/sangenan/DonkeyRefresh

到這里就結(jié)束啦。

以上就是Android 實現(xiàn)的下拉刷新效果的詳細(xì)內(nèi)容,更多關(guān)于Android 下拉刷新的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲网站视频| 青青草91视频| 国产精品午夜av| 国产精品v亚洲精品v日韩精品| 欧美影院视频| 久久国产高清| 蜜桃精品在线| 波多野结衣一区| 国产激情综合| 日韩在线成人| 国产色综合网| 91九色精品国产一区二区| 中文字幕在线官网| 精品久久中文| 婷婷激情一区| 久久要要av| 美女精品一区| 国产乱码精品一区二区三区亚洲人 | 久久av在线| 亚洲天堂免费| 国产日韩欧美三级| 福利片在线一区二区| 欧美亚洲日本精品| 亚洲精品小说| 日本久久一区| 日韩av资源网| 国际精品欧美精品| 午夜欧美在线| 日韩高清三区| 日韩av一区二区在线影视| 久热精品在线| 神马午夜在线视频| 国产精品主播在线观看| 亚洲伊人av| 国产亚洲电影| 亚洲三级国产| 五月婷婷亚洲| 奇米色欧美一区二区三区| 国产精品99一区二区| 精品五月天堂| 国产欧美日韩精品高清二区综合区| 国产视频一区三区| 美女精品在线| 国产亚洲永久域名| 色婷婷久久久| 日韩 欧美一区二区三区| 婷婷亚洲综合| 麻豆精品蜜桃| 国产精品2023| 日韩欧美高清一区二区三区| 国产一区白浆| 欧美中文字幕一区二区| 精品99久久| 国产精品三p一区二区| 免费在线欧美视频| 婷婷六月综合| 美腿丝袜在线亚洲一区| 日本中文字幕一区二区| 亚洲一区黄色| 国内精品福利| 精品免费视频| 日本91福利区| 日韩一区二区三区四区五区| 视频一区欧美日韩| 日韩一级不卡| 在线国产一区| 久久高清国产| 国产精品久久久久久久免费观看| 欧美xxxx性| 国产精品久久久久久模特| 亚洲精品无吗| 一本色道精品久久一区二区三区| 老司机免费视频一区二区三区| 日韩精品视频一区二区三区| 美国欧美日韩国产在线播放| 亚洲伊人av| 欧美xxxx中国| 在线 亚洲欧美在线综合一区| 精品在线网站观看| 精品欧美日韩精品| 国产乱码午夜在线视频| 国产精品伦理久久久久久| 蜜桃久久久久| 日本在线成人| 久久国内精品| 麻豆精品在线视频| 国内揄拍国内精品久久| 中文在线免费视频| 国产精品网在线观看| 久久99久久久精品欧美| 欧美综合精品| 久久久国产精品网站| 麻豆久久久久久| 国产欧美日韩一区二区三区四区 | 18国产精品| 国产精品欧美大片| 免费在线看一区| 亚洲精品进入| 最新亚洲国产| 日韩国产欧美在线视频| 久久gogo国模啪啪裸体| 日韩制服丝袜先锋影音| 国产日韩亚洲欧美精品| 国产精品黄网站| 91亚洲一区| 亚洲网站视频| 国产成人精品999在线观看| 亚洲四虎影院| 免费看欧美美女黄的网站| 日本亚洲最大的色成网站www| 国产日韩1区| 中文字幕一区久| 麻豆久久精品| 国产麻豆一区二区三区| 麻豆91精品视频| 蜜芽一区二区三区| 夜久久久久久| 国产探花一区在线观看| 97精品国产| 亚洲一区黄色| 亚洲一区黄色| 国产精品第十页| 久久蜜桃精品| 丝袜美腿亚洲色图| 美日韩一区二区三区| 国产欧美三级| 亚洲韩日在线| 国产麻豆一区二区三区精品视频| 国产成人久久| 精品一区毛片| 亚洲精品国产嫩草在线观看 | 五月天av在线| 精品国产黄a∨片高清在线| 亚洲精品888| 欧美一区不卡| 亚洲涩涩在线| 视频国产精品| 欧美一级二级三级视频| 91精品久久久久久久久久不卡| 蜜桃视频在线观看一区二区| 久久永久免费| 亚洲免费网址| 九九久久电影| 国产视频一区二区在线播放| 亚洲婷婷免费| 麻豆精品在线| 国产99在线| 亚洲国产日韩欧美在线| 欧美精品影院| 99视频精品| 精品福利久久久| 日韩精品三区四区| 亚洲国内精品| 精品一区二区三区中文字幕 | 日本亚洲视频| 久久三级中文| 一区二区自拍| 韩日一区二区| 日韩在线电影| 日韩动漫一区| 日本不卡不码高清免费观看| 亚洲精品2区| 久久午夜影院| 视频一区二区欧美| 日本视频一区二区| 日韩午夜精品| 日韩在线不卡| 国产欧美午夜| 手机精品视频在线观看| 国产v日韩v欧美v| 91成人小视频| 久久国产电影| 美日韩一区二区三区| 欧美亚洲国产激情| 日产精品一区二区| 国产麻豆精品| 日韩av中文字幕一区二区三区| 久久精品国产免费| 欧美日韩一区自拍| 亚洲香蕉视频| 欧美日韩黑人| 久久中文在线| 亚洲一区二区三区免费在线观看| 欧美aa一级| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 中文视频一区| 久久97视频| 国产日韩免费| 日本少妇精品亚洲第一区| 亚洲综合图色| 亚洲一级大片| 综合欧美精品| 一区二区日韩免费看| 91一区二区| 国产一区二区三区网| 国产视频网站一区二区三区| 欧美精品观看| 影音先锋久久| 欧美在线影院| 亚洲精品va|