精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用彈簧動畫曲線

系統 OpenHarmony
OpenHarmony提供了三種彈簧動畫曲線用來實現彈性效果,本例將為大家介紹這三種曲線的用法。

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

場景說明

在動畫開發場景中,經常用到彈性效果,尤其在拖拽某個對象時經常伴隨彈性動效。OpenHarmony提供了三種彈簧動畫曲線用來實現彈性效果,本例將為大家介紹這三種曲線的用法。

效果呈現

本例最終效果如下:

如何使用彈簧動畫曲線-開源基礎軟件社區

運行環境

本例基于以下環境開發,開發者也可以基于其他適配的版本進行開發:

  • IDE: DevEco Studio 3.1 Beta2
  • SDK: Ohos_sdk_public 3.2.11.9(API Version 9 Release)

實現思路

本例主要用到以下三種彈簧動畫曲線:

  • curves.springCurve:通過設置彈簧的初始速度、質量、剛度和阻尼來控制彈簧動畫的效果。對應本例中springCurve按鈕觸發的動畫。
  • curves.springMotion:通過設置彈簧震動時間和阻尼來控制彈簧動畫的效果。對應本例中springMotion按鈕觸發的動畫。
  • curves.responsiveSpringMotion:構造彈性跟手動畫曲線對象,是springMotion的一種特例,僅默認參數不同,可與springMotion混合使用。用來實現拖拽動畫。

開發步驟

搭建UI框架。
樣例中有兩個按鈕,一個圖片。內容整體縱向分布,兩個按鈕橫向分布??v向布局可以采用Column組件,橫向布局可以采用Row組件。代碼如下:

@Entry
@Component
struct ImageComponent {
  build() {
    Column() {
      Row() {
        Button('springCurve')
          .margin({right:10})
          .fontSize(20)
          .backgroundColor('#18183C')
        Button('springMotion')
          .fontSize(20)
          .backgroundColor('#18183C')
      }
      .margin({top:30})

      Image($r("app.media.contact2"))
        .width(100)
        .height(100)
    }.width("100%").height("100%").backgroundColor('#A4AE77')
  }
}

為springCurve按鈕添加curves.springCurve的曲線動畫。

...
// 定義狀態變量translateY,用來控制笑臉圖像的位移
@State translateY: number = 0
	...
    Button('springCurve')
      .margin({right:10})
      .fontSize(20)
      .backgroundColor('#18183C')
      // 綁定點擊事件
      .onClick(() => {
        // 在點擊事件中添加顯示動畫
        animateTo({
          duration: 2000,
          // 設定curves.springCurve為動畫曲線
          curve: curves.springCurve(100, 10, 80, 10)
        },
        () => {
          // 改變translateY的值,使笑臉圖像發生位移
          this.translateY = -20
        })
        this.translateY = 0
      })
	...
    Image($r("app.media.contact2"))
      .width(100)
      .height(100)
      // 為笑臉圖像添加位移屬性,以translateY為參數
      .translate({ y: this.translateY })
	...

效果如下:

如何使用彈簧動畫曲線-開源基礎軟件社區

為springMotion按鈕添加curves.springMotion曲線動畫。
這里通過position屬性控制springMotion按鈕的移動,當然開發者也可以繼續選擇使用translate屬性。

...
  // 定義狀態變量translateY,用來控制笑臉圖像的位置變化
  @State imgPos: {
    x: number,
    y: number
  } = { x: 125, y: 400 }
        ...
        Button('springMotion')
          .fontSize(20)
          .backgroundColor('#18183C')
          // 綁定點擊事件
          .onClick(() => {
          // 在點擊事件中添加顯示動畫
          animateTo({
            duration: 15,
            //設定curves.springMotion為動畫曲線
            curve: curves.springMotion(0.5, 0.5),
            onFinish: () => {
              animateTo({ duration: 500,
                curve: curves.springMotion(0.5, 0.5), }, () => {
                // 動畫結束時笑臉圖像位置還原
                this.imgPos = { x: 125, y: 400 }
              })
            }
          }, () => {
            // 改變笑臉圖像位置,y軸位置由400,變為150
            this.imgPos = { x: 125, y: 150 }
          })
        })
      ...
      Image($r("app.media.contact2"))
        .width(100)
        .height(100)
        .translate({ y: this.translateY })
        // 為笑臉圖像添加位置屬性,以imgPos為參數
        .position(this.imgPos)
     ...

效果如下:

如何使用彈簧動畫曲線-開源基礎軟件社區

使用curves.responsiveSpringMotion為笑臉圖像添加拖拽動畫。

...
      Image($r("app.media.contact2"))
        .width(100)
        .height(100)
        .translate({ y: this.translateY })
        .position(this.imgPos)
        // 綁定觸摸事件
        .onTouch((event: TouchEvent) => {
          // 當觸摸放開時,笑臉圖像位置還原
          if (event.type == TouchType.Up) {
            animateTo({
              duration: 50,
              delay: 0,
              curve: curves.springMotion(),
              onFinish: () => {
              }
            }, () => {
              this.imgPos = { x: 125, y: 400 }
            })
          } else {
            // 觸摸過程中觸發跟手動畫
            animateTo({
              duration: 50,
              delay: 0,
              //設定跟手動畫曲線
              curve: curves.responsiveSpringMotion(),
              onFinish: () => {
              }
            }, () => {
              // 根據觸點位置改變笑臉圖像位置,從而實現跟手動畫
              this.imgPos = {
                x: event.touches[0].screenX - 100 / 2,
                y: event.touches[0].screenY - 100 / 2
              }
            })
          }
        })
...

效果如下:

如何使用彈簧動畫曲線-開源基礎軟件社區

完整代碼

本例完整代碼如下:

import curves from '@ohos.curves';

@Entry
@Component
struct ImageComponent {
  // 定義狀態變量translateY,用來控制笑臉圖像的位移
  @State translateY: number = 0
  // 定義狀態變量translateY,用來控制笑臉圖像的位置變化
  @State imgPos: {
    x: number,
    y: number
  } = { x: 125, y: 400 }

  build() {
    Column() {
      Row() {
        Button('springCurve')
          .margin({right:10})
          .fontSize(20)
          .backgroundColor('#18183C')
          // 綁定點擊事件
          .onClick(() => {
            // 在點擊事件中添加顯示動畫
            animateTo({
              duration: 2000,
              // 設定curves.springCurve為動畫曲線
              curve: curves.springCurve(100, 10, 80, 10)
            },
            () => {
              // 改變translateY的值,使笑臉圖像發生位移
              this.translateY = -20
            })
            this.translateY = 0
          })
        Button('springMotion')
          .fontSize(20)
          .backgroundColor('#18183C')
          // 綁定點擊事件
          .onClick(() => {
            // 在點擊事件中添加顯示動畫
            animateTo({
              duration: 15,
              //設定curves.springMotion為動畫曲線
              curve: curves.springMotion(0.5, 0.5),
              onFinish: () => {
                animateTo({ duration: 500,
                  curve: curves.springMotion(0.5, 0.5), }, () => {
                  // 動畫結束時笑臉圖像位置還原
                  this.imgPos = { x: 125, y: 400 }
                })
              }
            }, () => {
              // 改變笑臉圖像位置,y軸位置由400,變為150
              this.imgPos = { x: 125, y: 150 }
            })
        })
      }
      .margin({top:30})

      Image($r("app.media.contact2"))
        .width(100)
        .height(100)
        // 為笑臉圖像添加位移屬性,以translateY為參數
        .translate({ y: this.translateY })
        // 為笑臉圖像添加位置屬性,以imgPos為參數
        .position(this.imgPos)
        // 綁定觸摸事件
        .onTouch((event: TouchEvent) => {
          // 當觸摸放開時,笑臉圖像位置還原
          if (event.type == TouchType.Up) {
            animateTo({
              duration: 50,
              delay: 0,
              curve: curves.springMotion(),
              onFinish: () => {
              }
            }, () => {
              this.imgPos = { x: 125, y: 400 }
            })
          } else {
            // 觸摸過程中觸發跟手動畫,同樣通過animateTo實現動畫效果
            animateTo({
              duration: 50,
              delay: 0,
              //設定跟手動畫曲線
              curve: curves.responsiveSpringMotion(),
              onFinish: () => {
              }
            }, () => {
              // 根據觸點位置改變笑臉圖像位置,從而實現跟手動畫
              this.imgPos = {
                x: event.touches[0].screenX - 100 / 2,
                y: event.touches[0].screenY - 100 / 2
              }
            })
          }
        })
    }.width("100%").height("100%").backgroundColor('#A4AE77')
  }
}

想了解更多關于開源的內容,請訪問:

51CTO 開源基礎軟件社區

https://ost.51cto.com

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2021-06-01 09:27:52

視頻動畫Remotion

2010-12-01 11:03:20

職場

2009-09-22 12:59:58

ibmdwDojo

2022-11-23 08:17:18

CSS動畫貝塞爾

2021-07-27 05:53:00

Chrome瀏覽器KPI

2017-04-27 20:30:33

Android動畫技巧

2017-03-28 13:00:10

LinuxGifineGIF動畫

2014-04-08 17:35:24

iOS 7彈簧式列表

2023-06-05 09:28:32

CSS漸變

2021-12-15 19:22:38

原理View動畫

2021-12-20 20:30:48

鴻蒙HarmonyOS應用

2020-07-09 13:10:42

GIMP曲線文本應用

2023-09-13 14:45:14

性能測試開發

2014-05-30 09:44:08

Android折紙動畫

2021-05-11 08:19:00

CSS 文字動畫技巧

2021-02-21 08:12:24

SVG線條動畫Web動畫

2012-12-24 13:38:01

iOSUIView

2018-10-10 09:00:00

前端框架Angular

2021-01-04 11:10:14

鴻蒙HarmonyOSCanvas

2023-04-27 09:55:09

分類器ROC曲線混淆矩陣
點贊
收藏

51CTO技術棧公眾號

在线亚洲高清视频| 99精品视频中文字幕| 色婷婷成人综合| 九九九久久久久久久| xxxx成人| 欧美经典一区二区三区| 97超碰人人看人人| 亚洲国产精品无码久久久| 91精品国产91久久综合 | 中文字幕一级片| 欧美激情 亚洲a∨综合| 日韩精品极品视频免费观看| 色啦啦av综合| 国产激情视频在线看| 国产精品视频线看| 国产原创精品| 国产精品嫩草影院精东| 国产精品综合| 久久视频在线免费观看| 日本黄色网址大全| 亚洲国产视频二区| 欧美视频自拍偷拍| 国产a级一级片| 美女精品视频| 亚洲欧美偷拍卡通变态| 视频一区视频二区视频| 天天操天天干天天操| 国内久久婷婷综合| 国产精品第10页| 国产成人精品一区二三区| 久久久久久美女精品| 一区二区三区www| 国产网站无遮挡| 国产精品久久久久av蜜臀| 欧美精品黑人性xxxx| 国产天堂在线播放| 亚洲人成在线网站| 午夜av一区二区三区| 日本福利视频在线观看| 国产美女在线观看| 国产精品传媒视频| 亚洲国产一区二区在线| 日本一级在线观看| av成人老司机| 国产精品久久久久久久免费大片 | 日韩精品中文字| 日本五十肥熟交尾| 爱高潮www亚洲精品| 欧美一区二区视频观看视频| 岛国av在线免费| 成人av集中营| 欧美日韩卡一卡二| 国产一伦一伦一伦| 爱情电影网av一区二区| 欧美精品国产精品| theporn国产精品| а天堂中文最新一区二区三区| 欧美日韩不卡视频| 岛国av免费在线| www.久久久久爱免| 欧美大黄免费观看| 强迫凌虐淫辱の牝奴在线观看| 国产福利一区二区精品秒拍| 亚洲精品成人久久久| 超碰97在线资源站| 久久综合影院| 中文欧美日本在线资源| 久久精品国产亚洲AV成人婷婷| 不卡一区综合视频| xxxxx91麻豆| 妺妺窝人体色www婷婷| 亚洲区国产区| 日韩免费在线观看视频| 一区二区三区在线免费观看视频| 精品一区二区影视| 99视频免费观看| 三级在线播放| 欧美激情综合网| av电影一区二区三区| xxxx在线视频| 91精品福利视频| 国产探花在线观看视频| 福利在线一区| 亚洲品质视频自拍网| 亚洲AV成人无码网站天堂久久| 中文字幕免费一区二区三区| 久久久午夜视频| 久久精品视频2| aaaaaa亚洲| 国产区av在线| 综合久久综合久久| 久无码久无码av无码| 少妇在线看www| 欧美午夜视频网站| 国产探花一区二区三区| 台湾色综合娱乐中文网| 最近免费中文字幕视频2019| 丁香花五月激情| 在线综合视频| 成人黄色免费看| 五月婷婷六月丁香| 国产精品久久久久四虎| 久久av综合网| 福利一区二区三区视频在线观看| 精品日韩在线一区| 欧美18—19性高清hd4k| 中文无码久久精品| 国产精品27p| 风流老熟女一区二区三区| 国产日本一区二区| 18禁裸男晨勃露j毛免费观看| 香蕉成人av| 欧美成人精品1314www| 久久久久亚洲av无码a片| 亚洲网站啪啪| 2019国产精品视频| 国产精品99999| 亚洲不卡av一区二区三区| 污色网站在线观看| 久久av免费看| 欧美亚洲免费电影| 理论片中文字幕| 亚洲欧美激情在线| 亚洲综合日韩欧美| 九九视频免费观看视频精品| 久久噜噜噜精品国产亚洲综合| 一炮成瘾1v1高h| 国产欧美精品一区二区三区四区| 人妻熟妇乱又伦精品视频| ady日本映画久久精品一区二区| 色婷婷久久av| 中文字幕在线视频第一页| 久久丝袜美腿综合| 黑人糟蹋人妻hd中文字幕| 国产精品1luya在线播放| 美女av一区二区三区| 中文字幕一区二区久久人妻| 久久久久久久久97黄色工厂| 欧美 日本 亚洲| 岛国成人av| 欧美激情视频网址| 亚洲美女综合网| 亚洲综合久久久| 久久久男人的天堂| 欧美精品九九| 成人资源视频网站免费| 女囚岛在线观看| 精品久久久久久久久久久久久久久| 国产67194| 国产精品一区不卡| 日本黄色片一级片| 久久久伦理片| 奇米四色中文综合久久| 精品久久久久一区二区三区| 欧美午夜精品伦理| 精品人伦一区二区三电影| 日韩精品欧美成人高清一区二区| 欧美国产一区二区在线| 欧美freesex| 上原亚衣av一区二区三区| 国产精品一二三四五区| 亚洲免费成人av| 91九色蝌蚪porny| 国产精品一区亚洲| 日韩av影视| 亚洲人成777| 欧美福利视频网站| 午夜福利一区二区三区| 色网综合在线观看| 久久精品在线观看视频| 国产精品一卡二| 国产最新免费视频| 精品视频亚洲| 91免费国产视频| 8x8ⅹ拨牐拨牐拨牐在线观看| 日韩精品中文字幕在线| 波多野结衣电影在线播放| 国产精品人妖ts系列视频 | 精品一区二区久久久| 中文字幕一区二区三区最新| 久久久久久爱| 91国产高清在线| а√天堂中文在线资源bt在线| 51午夜精品国产| 久久不卡免费视频| 国产精品福利一区| 深田咏美中文字幕| 日韩高清一区在线| www.一区二区.com| 国产精品美女久久久久久不卡| 国产一区红桃视频| www.51av欧美视频| 中文字幕亚洲一区在线观看 | 懂色av噜噜一区二区三区av | 韩国一区二区在线观看| 黄色一级片在线看| 成人羞羞网站入口| 国产精品国产一区二区| 九色成人搞黄网站| 国内精品伊人久久| 黄色精品在线观看| 亚洲欧美精品suv| 国产成人精品av在线观| 色综合久久99| 免费一级a毛片夜夜看| 欧美国产成人在线| 三级视频网站在线观看| 激情综合网av| 人妻精品无码一区二区三区| 国产精品伦理久久久久久| 蜜桃精品久久久久久久免费影院 | 久久精品日产第一区二区三区| 国产精品原创视频| 91成人在线播放| 免费av不卡在线观看| 中文字幕亚洲欧美日韩在线不卡| 亚洲色图另类小说| 欧美mv日韩mv| a级片免费观看| 欧美日韩一区二区三区四区五区| a v视频在线观看| 夜夜嗨av一区二区三区四季av | 国产精品久久久久久av| 69av成人| 欧美黄色片免费观看| 老司机精品影院| 中文国产亚洲喷潮| 毛片在线播放网址| 亚洲免费视频观看| 亚洲 欧美 激情 小说 另类| 亚洲高清久久网| www.蜜桃av.com| 91精品国产综合久久精品app| 波多野结衣在线观看视频| 懂色aⅴ精品一区二区三区蜜月 | 3d动漫精品啪啪一区二区下载| 国产·精品毛片| 绯色av蜜臀vs少妇| 国产激情一区二区三区桃花岛亚洲| 一区二区三区网址| 免费观看在线综合色| 亚洲中文字幕久久精品无码喷水 | 中文字幕在线导航| 首页亚洲欧美制服丝腿| 97在线免费公开视频| 亚洲影音一区| 1024精品视频| 久久国产66| 婷婷激情四射五月天| 麻豆精品视频在线观看视频| 九九精品久久久| 国产乱子伦一区二区三区国色天香| 手机精品视频在线| 国产福利不卡视频| 午夜免费福利影院| 99re视频精品| 少妇无套高潮一二三区| 中文字幕乱码日本亚洲一区二区| 国产午夜精品久久久久久久久| 国产精品视频一二三| 国产精品精品软件男同| 亚洲乱码中文字幕| 亚洲国产精品成人无久久精品| 欧美日韩精品国产| 中文字幕日本人妻久久久免费| 欧美精选一区二区| 亚洲欧美另类视频| 精品香蕉在线观看视频一| 国产福利免费在线观看| 久久久久北条麻妃免费看| 欧美wwww| 青青青国产精品一区二区| 草莓视频成人appios| 国产日韩亚洲欧美| gogo人体一区| 欧美日韩在线一二三| 欧美国产美女| www.av毛片| 麻豆传媒一区二区三区| 午夜福利三级理论电影| 久久久久久免费毛片精品| 日韩精品一区二区三区在线视频| 亚洲丰满少妇videoshd| 日韩黄色片网站| 欧美电影免费提供在线观看| 九色视频网站在线观看| 九九热这里只有在线精品视| 密臀av在线播放| 91久久精品国产91久久性色| 老汉色老汉首页av亚洲| 亚洲一区二区三区精品视频| 亚洲第一在线| 天堂在线一区二区三区| 99精品视频在线观看| 三级黄色在线观看| 大荫蒂欧美视频另类xxxx| 99国产精品久久久久久久成人 | 欧美综合色免费| 亚洲高清精品视频| 在线观看欧美成人| 九色91在线| 国产在线播放91| 偷拍亚洲精品| 日本免费成人网| 麻豆国产91在线播放| 国产精品1000部啪视频| 又紧又大又爽精品一区二区| 波多野结衣视频在线观看| 亚洲二区中文字幕| а√天堂在线官网| 国产精品第一区| 日韩av字幕| 国产精品va在线观看无码| 美女高潮久久久| 成人精品999| 天天色天天操综合| 亚洲精品无遮挡| 久久夜色精品亚洲噜噜国产mv| 成人免费av电影| 免费不卡亚洲欧美| 伊人久久大香线蕉av超碰演员| 999久久久精品视频| 国产亚洲一二三区| 午夜精品三级久久久有码| 日韩女优av电影| 成人短视频在线| 国产美女精彩久久| 欧美特黄一级大片| 国产精品乱码久久久久| 26uuu亚洲| 国产精品黄色大片| 亚洲国产小视频| ririsao久久精品一区| 超碰97在线人人| 你懂的亚洲视频| 久久久久久无码精品人妻一区二区 | 成人午夜在线影院| 欧美岛国激情| 日本黄大片一区二区三区| 国产日韩欧美a| 免费黄色片视频| 一区二区三区 在线观看视| 欧美一级二级视频| 亚洲欧美国产一区二区| 美日韩一区二区三区| 日韩影视一区二区三区| 欧美在线不卡一区| 77导航福利在线| 国产色综合天天综合网| 亚洲精品久久久| 丰满少妇一区二区三区专区| 亚洲女厕所小便bbb| 精品人妻伦一区二区三区久久| 欧美精品一区三区| 成人高潮视频| 凹凸国产熟女精品视频| 久久久精品2019中文字幕之3| 黄色av网站免费| 色伦专区97中文字幕| 日本精品国产| 好吊妞无缓冲视频观看| 国产亚洲精品超碰| 在线免费av片| 色综合久久久久久中文网| 给我免费播放日韩视频| 欧美三级一级片| 中文字幕欧美区| 国产精品无码专区av免费播放| 欧美国产极速在线| 亚洲精品无吗| 中文字幕视频三区| 亚洲第一久久影院| 黄色大片在线免费观看| 91精品国产综合久久香蕉922| 国产精品videosex极品| 国产美女视频免费观看下载软件| 色屁屁一区二区| av免费在线观看网站| 精品一卡二卡三卡四卡日本乱码 | 欧洲精品视频在线观看| 成人影院在线看| 精品免费一区二区三区蜜桃| 三级一区在线视频先锋| 卡通动漫亚洲综合| 日韩高清不卡av| 成人豆花视频| 37pao成人国产永久免费视频| 国产精品免费人成网站| 丰满人妻一区二区三区免费| 日韩av免费看| 欧美日本亚洲韩国国产| 制服丝袜第二页| 51精品国自产在线| 吞精囗交69激情欧美| 国内精品国产三级国产99| 91免费精品国自产拍在线不卡| 91成年人视频| 日韩av电影院| 狠狠干成人综合网| www.99re6|