激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - SpringAnimation 實現菜單從頂部彈出從底部消失動畫效果

SpringAnimation 實現菜單從頂部彈出從底部消失動畫效果

2021-05-06 11:29一品大帥 Java教程

最近做項目遇到這樣一個需求,要求實現一種菜單,菜單從頂部彈入,然后從底部消失,頂部彈入時,有一個上下抖動的過程,底部消失時,先向上滑動,然后再向下滑動消失。下面給大家帶來了實現代碼,感興趣的朋友一起看看

前言

實現一種菜單,菜單從頂部彈入,然后從底部消失,頂部彈入時,有一個上下抖動的過程,底部消失時,先向上滑動,然后再向下滑動消失。

 效果圖如下:

SpringAnimation 實現菜單從頂部彈出從底部消失動畫效果

引入依賴

?
1
implementation 'com.android.support:support-dynamic-animation:27.1.1'1

創建springanimation需要三個參數。

•做動畫的view

•做動畫的類型(dynamicanimation)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
alpha
rotation
rotation_x
rotation_y
scale_x
scale_y
scroll_x
scroll_y
translation_x
translation_y
translation_z
x
y
z

上邊的gif圖為dynamicanimation為translation_y的預覽圖,現在我們把參數設置為rotation,

?
1
springanimation signupbtnanimy = new springanimation(constraintlayout, dynamicanimation.rotation, 0);

效果圖如下:

SpringAnimation 實現菜單從頂部彈出從底部消失動畫效果

- 創建動畫的最終位置

 相對view的當前位置的偏移量。

springforce

為了讓動畫流暢,有彈簧的性質,需要設置springforce的相關參數。

- stiffness

即剛度,此值越大,產生的里越大,動畫中彈性效果越不明顯,運動比較快。

?
1
2
3
4
stiffness_high
stiffness_low
stiffness_medium
stiffness_very_low

設置方法為:

?
1
signupbtnanimy.getspring().setstiffness(springforce.stiffness_low);

•dampingratio阻尼比

 即阻尼比,此值越大,彈簧效果停止的越快

?
1
2
3
4
damping_ratio_high_bouncy
damping_ratio_low_bouncy
damping_ratio_medium_bouncy
damping_ratio_no_bouncy

設置方法為:

?
1
signupbtnanimy.getspring().setdampingratio(springforce.damping_ratio_medium_bouncy);

startvelocity

啟動速度,默認速度為0,單位是px/second.

整體代碼如下:

•顯示菜單動畫

?
1
2
3
4
5
6
7
8
public void showanimal() {
    setvisibility(view.visible);
    springanimation signupbtnanimy = new springanimation(constraintlayout, dynamicanimation.translation_y, 0);
    signupbtnanimy.getspring().setstiffness(springforce.stiffness_low);
    signupbtnanimy.getspring().setdampingratio(springforce.damping_ratio_medium_bouncy);
    signupbtnanimy.setstartvelocity(5000);
    signupbtnanimy.start();
  }

•隱藏菜單動畫

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void hideanimal() {
    height = (screentools.getscreenheight(getcontext()) - constraintlayout.getheight()) / 2 + constraintlayout.getheight() + screentools.dp2px(getcontext(),50);
    objectanimator animator = objectanimator.offloat(constraintlayout, "translationy", 0f, -100f, height);
    animator.setduration(600);
    animator.setinterpolator(new decelerateinterpolator());
    animator.addlistener(new animatorlisteneradapter() {
      @override
      public void onanimationend(animator animation) {
        super.onanimationend(animation);
        setvisibility(gone);
        relayout();
      }
    });
    animator.start();
  }

源碼:https://github.com/lsnumber1/studyspringanimation

總結

以上所述是小編給大家介紹的springanimation 實現菜單從頂部彈出從底部消失動畫效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://blog.csdn.net/qin_shi/article/details/80438448

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品一区二区在线播放 | 伊人999 | 亚洲福利在线免费观看 | 久久国产不卡 | 美女黄页网站免费进入 | 欧美一级三级在线观看 | 黄色免费小视频网站 | 黄色成人短视频 | 国产成人午夜高潮毛片 | 亚洲免费视 | 99国产精品自拍 | 国产一区二区亚洲 | 国产精品久久久久久久四虎电影 | av日韩一区二区 | 九九热视频这里只有精品 | 手机国产乱子伦精品视频 | 日日爱影院| 天天躁狠狠躁夜躁2020挡不住 | 国产三级午夜理伦三级 | 精品一区二区久久久 | 国产亚洲黑人性受xxxx精品 | 97中文| 精品麻豆cm视频在线看 | 毛片在线免费 | 国产88久久久国产精品免费二区 | 免费看搡女人无遮挡的视频 | 中文亚洲视频 | 黄色一级视频 | 欧美精品123区 | 精品无码久久久久久国产 | 国产91精品久久久久久久 | 亚洲影视中文字幕 | 国产精品一区视频 | 国产午夜精品一区二区三区免费 | 欧美日韩在线看片 | 免费在线观看国产精品 | xxx日本视频| 免费黄色小网站 | 曰批全过程40分钟免费视频多人 | 黄视频网站免费在线观看 | 亚洲精品久久久久www |