一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青春草在线观看精品免费视频 | 天天摸天天操天天爽 | 日本中文字幕不卡在线一区二区 | 性欧美金发洋妞xxxxbbbb | 网站在线观看 | 青青国产成人久久激情91麻豆 | 亚洲色大成网站www久久九九 | 好大好深视频 | 国产乱码免费卡1卡二卡3卡四 | 日本一区二区视频免费播放 | 亚洲精品成人a | 明星ai人脸替换造梦在线播放 | 干操网| 四川一级毛片 | 亚洲人成在线观看一区二区 | 午夜久久久久久亚洲国产精品 | chinesegay黑袜玩奴 | china精品对白普通话 | 欧美性色黄大片四虎影视 | 国产精品自在欧美一区 | 午夜影院一区二区三区 | 国产免费又粗又猛又爽视频国产 | 亚洲剧情在线 | 精品久久成人免费第三区 | 亚洲国产精品综合久久一线 | 亚洲国产第一 | 大胸纲手被羞羞漫画网站 | 国产欧美va欧美va香蕉在线观看 | 欧美亚洲第一区 | 美女奶口隐私免费视频网站 | 国产精品久久久久久网站 | 亚洲国产精品嫩草影院永久 | 日本sss在线高清观看 | a亚洲天堂 | 91庥豆果冻天美精东蜜桃传媒 | 成年人视频免费在线播放 | 国产精品一级香蕉一区 | 日本偷拍xxxxxxww | 非洲黑女人性xxxx | 四虎私人影院 | 亚洲福利视频在线观看 |