日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Loading(二)--ThreeBodyLoadingView

發布時間:2025/3/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Loading(二)--ThreeBodyLoadingView 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是第二個

這里展示了兩個不同大小的View效果,當然真正的三體幾乎是沒有規律的

思路

1、根據View的寬高計算三個小球的初始位置

我這里是根據寬高比重計算小球的位置,先確定中間位置,為了增加容錯性,三個小球的直徑最大為View寬度的5/6,并且最大為Vieww高度的4/5;左右小球的圓心距離中間小球的圓心是一個小球的直徑大小。 使用drawCircle繪制出來,效果是這樣

2、使用屬性動畫計算小球的位置和半徑變化大小

我使用屬性動畫,改變一個rate的成員變量,使他從0到3勻速變化大小,0~1,1~2,2~3,分別對應小球運動的三個狀態:左->中,中->右,右->左。

rate數值0~1

小球位置變換
球1左->中
球2中->右
球3右->左

rate數值1~2

小球位置變換
球1中->右
球2右->左
球3左->中

rate數值2~3

小球位置變換
球1右->左
球2中->右
球3中->右
/*** 記錄三個小球的初始位置* Body記錄小球參數的內部實體類*/private Body[] originalBodys = new Body[3];/*** 記錄三個小球的最新位置*/private Body[] bodys = new Body[3]; //計算新位置private void computePosition() {if (rate <= 1.0f) {bodys[0].centerX = (int) (originalBodys[0].centerX + movingDistance * 0.5f * rate);bodys[0].radius = (int) (originalBodys[0].radius + radiusRange * rate);bodys[1].centerX = (int) (originalBodys[1].centerX + movingDistance * 0.5f * rate);bodys[1].radius = (int) (originalBodys[1].radius + radiusRange * (1 - rate));bodys[2].centerX = (int) (originalBodys[2].centerX - movingDistance * rate);bodys[2].radius = originalBodys[2].radius;} else if (rate > 1.0f && rate <= 2.0f) { bodys[0].centerX = (int) (originalBodys[0].centerX + movingDistance * 0.5f + movingDistance * 0.5f * (rate - 1));bodys[0].radius = (int) (originalBodys[0].radius + radiusRange * (2 - rate));bodys[1].centerX = (int) (originalBodys[1].centerX + movingDistance * 0.5f - movingDistance * (rate - 1));bodys[1].radius = originalBodys[1].radius;bodys[2].centerX = (int) (originalBodys[2].centerX - movingDistance + movingDistance * 0.5f * (rate - 1));bodys[2].radius = (int) (originalBodys[2].radius + radiusRange * (rate - 1));} else if (rate > 2.0f && rate <= 3.0f) {bodys[0].centerX = (int) (originalBodys[0].centerX + movingDistance - movingDistance * (rate - 2));bodys[0].radius = originalBodys[0].radius;bodys[1].centerX = (int) (originalBodys[1].centerX - movingDistance * 0.5f + movingDistance * 0.5f * (rate - 2)); rate));bodys[1].radius = (int) (originalBodys[1].radius + radiusRange * (rate - 2));bodys[2].centerX = (int) (originalBodys[2].centerX - movingDistance * 0.5f + movingDistance * 0.5f * (rate - 2));bodys[2].radius = (int) (originalBodys[2].radius + radiusRange - radiusRange * (rate - 2));}} 復制代碼

3、確定繪制順序

因為先繪制的圖層會在下面,所以右->左這個運動位置的小球一定是最先繪制的

if (rate <= 1.0f) {drawOrders[0] = 2;drawOrders[1] = 1;drawOrders[2] = 0;} else if (rate > 1.0f && rate <= 2.0f) {drawOrders[0] = 1;drawOrders[1] = 0;drawOrders[2] = 2;} else if (rate > 2.0f && rate <= 3.0f) {drawOrders[0] = 0;drawOrders[1] = 1;drawOrders[2] = 2;} 復制代碼

4、動畫開啟和結束

@Overrideprotected void onAttachedToWindow() {super.onAttachedToWindow();animStart();}@Overrideprotected void onDetachedFromWindow() {super.onDetachedFromWindow();animStop();} 復制代碼

使用

xml

<com.riverlet.loading.ThreeBodyLoadingViewandroid:layout_width="100dp"android:layout_height="100dp"android:layout_marginTop="50dp"app:firstColor="#FFFF0000"app:secondColor="#FF1C86EE"app:thirdColor="#FFEE9A00" /> 復制代碼
  • app:firstColor,球1顏色
  • app:secondColor,球2顏色
  • app:thirdColor,球3顏色

#代碼 其他具體看代碼吧:Loading

-----------------------------目錄-----------------------------

  • 1、CircleLoadingView
  • 2、ThreeBodyLoadingView

總結

以上是生活随笔為你收集整理的Loading(二)--ThreeBodyLoadingView的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天天天天天天天干 | 91在线亚洲 | а√天堂资源在线 | 欧美国产一二三区 | 日韩欧美成 | 亚洲国产一区在线观看 | 99久久久国产精品免费蜜臀 | 欧美成人三级伦在线观看 | 国产xxx在线观看 | 视频一区在线免费观看 | 久久久久久久久久久久久久 | 久操综合| 男女做爰猛烈刺激 | 农村末发育av片一区二区 | 国产精品久久久久久免费免熟 | 五月婷婷狠狠干 | 国产啪视频 | 污免费视频| 日韩av一区二区三区 | 欧美一区二区三区激情视频 | 波多野结衣一区二区三区四区 | 成人中文字幕在线 | 国产亚洲精品久久久久动 | 成人午夜淫片免费观看 | 天堂国产一区二区三区 | 精品一区二区三区在线免费观看 | 国产亚洲精品久久久久久无几年桃 | 尤物视频在线观看视频 | 国内性视频| 色黄大色黄女片免费中国 | 你懂的日韩 | 少妇2做爰hd韩国电影 | 在线视频二区 | 亚洲一区二区三区精品视频 | 国产毛片视频网站 | 国产成人综合精品 | 日韩欧美国产成人精品免费 | 日韩中文字幕免费视频 | 少女忠诚电影高清免费 | 精品+无码+在线观看 | 日本泡妞xxxx免费视频软件 | 久久精品99久久久久久 | 综合精品久久久 | 1000部多毛熟女毛茸茸 | 国产特黄大片aaaa毛片 | 国产免费看av | √天堂 | 男女视频免费 | 少妇不卡视频 | 色爱av综合网 | 久久综合五月 | 波多野结衣免费观看视频 | 成人黄色大片在线观看 | 激情五月婷婷在线 | 天天看片天天爽 | 日韩少妇内射免费播放 | 欧美精品少妇 | 色丁香在线 | 日韩久久av | 天天干天天看 | 91天天 | 日韩无码精品一区二区三区 | 一级黄色在线视频 | 日韩福利视频导航 | 中文字幕一区二区三区日韩精品 | 自拍偷拍亚洲精品 | 国产在线视频一区二区 | 偷拍一区二区 | 国产伦精品一区二区三区视频网站 | 人人澡人人澡 | 久久精品国产精品亚洲 | 花样视频污 | 国产精品激情 | 99re久久精品国产 | 一级伦理农村妇女愉情 | av资源新版在线天堂 | 欧美一级网 | 蜜桃av在线看| 国产精品xxx在线观看www | 亚洲精品ww| 夜夜操网址 | 人妻巨大乳hd免费看 | 视频一区 中文字幕 | 日韩经典一区二区 | 天天综合网入口 | 国产国语性生话播放 | 免费看女生隐私 | 福利电影一区二区 | 玖玖爱资源站 | 天天都色 | 91影院在线观看 | 性猛交娇小69hd | 国产欧美精品在线观看 | 色天天天 | 男人操女人的免费视频 | 国产精品福利片 | 日韩视频 中文字幕 | 中国三级黄色 | 91中文字幕在线观看 |