精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91精品久久| 日韩三级一区二区| 亚洲一区二区三区四区电影| 亚洲精品久久7777| 国产精品一区二区免费| 五月婷婷中文字幕| 色无极亚洲影院| 日韩三区在线观看| 久久久久久久激情| 日本在线观看| 成人福利视频在线| 国产a∨精品一区二区三区不卡| 天堂网中文在线观看| av不卡一区| 欧美日韩一二三四五区| 在线一区亚洲| 日本1级在线| 国产精品自在在线| 国产成人精品电影久久久| 少妇久久久久久被弄高潮| 嫩草影视亚洲| 精品国产乱码久久久久久图片 | 色综合久久天天| 国产经典久久久| 国产中文字幕在线观看| 丁香婷婷综合色啪| 国产在线视频不卡| 日本天堂网在线| 欧美午夜不卡影院在线观看完整版免费| 亚洲欧美一区二区三区情侣bbw| 亚洲丝袜在线观看| 欧美成人一二区| 一本大道久久精品懂色aⅴ| 欧美极品少妇无套实战| 久热国产在线| 国产精品美女久久久久久久久久久| 国产一区高清视频| www.爱爱.com| 国产自产高清不卡| 国产免费一区视频观看免费| 亚洲欧美一区二区三区在线观看| 精品av久久久久电影| 久久精品亚洲94久久精品| 最新中文字幕av| 国产真实有声精品录音| 亚洲女人天堂av| 激情综合丁香五月| 欧美人与动xxxxz0oz| 精品久久久久久综合日本欧美| 日本一二三四区视频| 欧美黄页免费| 欧美日韩高清一区二区三区| 手机在线看福利| 天天综合网天天| 91久久精品一区二区| 亚洲精品乱码久久久久久自慰| 欧美在线极品| 岛国av在线不卡| 99精品在线免费视频| 成年男女免费视频网站不卡| 精品久久久精品| 国产91对白刺激露脸在线观看| 两个人看的在线视频www| 午夜精品久久久久久久蜜桃app| 欧美精品一区二区三区三州| 福利在线免费视频| 色噜噜久久综合| 韩国中文字幕av| 91麻豆精品国产综合久久久 | 亚洲色图另类专区| 黄色一级视频播放| 手机av在线播放| 午夜一区二区三区视频| 成人一对一视频| 欧美日韩123区| 欧美日韩激情在线| 中文字幕亚洲日本| 国产欧美自拍一区| 亚洲日本aⅴ片在线观看香蕉| 欧美成人国产精品一区二区| 久久精品国产99久久| 美日韩精品视频免费看| 国产一二三四在线| 久久久久久一区二区| 国产免费亚洲高清| 人妻一区二区三区| 国产日韩av一区| 久久av秘一区二区三区| jizz一区二区三区| 欧洲av在线精品| 91网址在线观看精品| 欧美日韩一区二区三区四区不卡| 亚洲天堂视频在线观看| 久久久久久久久久久久久女过产乱| 欧美精品大片| 国产91精品在线播放| 国产精品伦理一区| 99久久综合色| 一本一道久久久a久久久精品91| 草美女在线观看| 在线观看一区二区精品视频| 成人免费黄色av| 九九综合在线| 九九精品在线播放| 亚洲精品国产精品国自产网站按摩| 国产麻豆精品一区二区| 免费观看成人在线| 少妇av在线| 欧美熟乱第一页| 日本国产在线视频| 97精品国产一区二区三区| 97人人爽人人喊人人模波多| 中文字幕日韩经典| 久久免费看少妇高潮| 国产91视频一区| 国模冰冰炮一区二区| 日韩精品中文字幕在线不卡尤物| a级大片在线观看| 国产专区一区| 国产又爽又黄的激情精品视频 | 永久免费看av| 日本精品在线中文字幕| 亚洲精品久久久久中文字幕欢迎你| 可以免费看av的网址| 美日韩精品视频| 国产精品国产三级国产专区53| 91caoporn在线| 欧美天堂在线观看| 亚洲激情 欧美| 欧美人与禽猛交乱配视频| 国产精品永久免费视频| 国产乱理伦片a级在线观看| 黄网站色欧美视频| 69亚洲乱人伦| 欧美人与禽猛交乱配视频| 91在线精品播放| 又爽又大又黄a级毛片在线视频| 色哟哟一区二区| 国产人妻人伦精品1国产丝袜| 黄色亚洲大片免费在线观看| 99国产视频| 26uuu亚洲电影在线观看| 欧美日韩国产a| av片在线免费看| 日本不卡中文字幕| 日韩一区二区三区高清| 粉嫩一区二区三区| 亚洲人线精品午夜| 这里只有精品国产| 国产精品素人一区二区| 在线观看的毛片| 青青草91久久久久久久久| 国产精品91一区| yiren22综合网成人| 欧美日韩精品二区第二页| 懂色av蜜臀av粉嫩av永久| 蜜桃精品视频在线观看| 亚洲精品不卡| 国产精品日韩精品在线播放| 久久伊人精品一区二区三区| 国产视频在线观看视频| 亚洲免费观看视频| 女王人厕视频2ⅴk| 影音先锋亚洲一区| 精品久久蜜桃| 成人看片网页| 久久精品99无色码中文字幕 | 久久99久久98精品免观看软件| 国产精品亚洲综合一区在线观看| 好吊色视频988gao在线观看| 成人精品毛片| 欧美综合国产精品久久丁香| 国产三级在线看| 在线成人免费视频| 国产一级做a爱免费视频| 91在线云播放| 国产又大又黄又猛| 欧美啪啪一区| 欧美精品成人一区二区在线观看| 欧洲成人一区| 欧美另类极品videosbest最新版本| 亚洲欧美激情另类| 欧美性猛交xxxx富婆| 天堂在线中文视频| 岛国av在线一区| 国产激情在线观看视频| **女人18毛片一区二区| 国产原创精品| 欧美成人一二区| 高清欧美电影在线| 99riav在线| 欧美精品一区视频| 亚洲 小说区 图片区| 一区二区三区四区蜜桃| 97超碰在线免费观看| 激情五月播播久久久精品| 国产精品裸体瑜伽视频| 欧美a级成人淫片免费看| 国产精品成人观看视频免费| 香蕉视频亚洲一级| 久久99热精品| av在线天堂播放| 亚洲第一页在线| 亚洲中文字幕在线一区| 同产精品九九九| 免费在线观看黄色小视频| 91在线视频在线| avtt中文字幕| 九一久久久久久| 十八禁视频网站在线观看| 国产精品a久久久久| 视频二区一区| 校园春色另类视频| 成人av免费看| 久久精品嫩草影院| 91精品国产一区| 亚洲精品一线| 日日噜噜噜夜夜爽亚洲精品 | 日韩国产成人无码av毛片| 欧美一区三区| 久久精品二区| gogo人体一区| 91成人免费看| 日本午夜精品久久久久| 日韩美女免费线视频| 国产激情在线播放| 久久久久久伊人| jizzjizz亚洲| 久久精品国产免费观看| 成人精品福利| 在线观看亚洲区| 韩国三级av在线免费观看| 亚洲精品黄网在线观看| 国产综合在线播放| 欧美成人高清电影在线| 国产美女永久免费| 538prom精品视频线放| 中文字幕在线播放av| 91久久精品一区二区三区| 亚洲熟女综合色一区二区三区| 午夜国产精品影院在线观看| 国产午夜小视频| 亚洲一区二区三区四区不卡| 国产高潮国产高潮久久久91| 亚洲欧美另类综合偷拍| 老湿机69福利| 一区二区三区四区亚洲| 国产在线观看成人| 一区二区三区日韩在线观看| 亚洲av无码一区二区三区在线| 亚洲色图制服诱惑| 18岁成人毛片| 亚洲成人午夜电影| 国产成人精品片| 一本色道久久综合狠狠躁的推荐| 一级成人黄色片| 在线精品视频小说1| 中文字幕一二区| 欧美猛男男办公室激情| 国产精品高潮呻吟av| 欧美一区二区三区四区久久| av中文字幕观看| 亚洲福利在线播放| 日韩三级电影网| 中日韩午夜理伦电影免费| 欧美成人性生活视频| 欧美另类在线观看| www.综合| 国产精品久久久久av免费| 欧美91在线|欧美| 99在线免费观看视频| 欧美三级午夜理伦三级小说| 欧美最大成人综合网| 99精品电影| 亚洲人精品午夜射精日韩 | 亚洲一区二区三区四区中文字幕| 国产一国产二国产三| 欧美日韩午夜剧场| 伊人网站在线观看| 日韩欧美三级在线| 日本一区视频| 麻豆乱码国产一区二区三区 | 亚洲高清免费一级二级三级| 少妇太紧太爽又黄又硬又爽| 欧美天堂亚洲电影院在线播放| 午夜免费福利视频| 亚洲欧美综合v| 成人黄色在线电影| 欧美主播福利视频| 中文字幕成人| 久久精品成人一区二区三区蜜臀| 欧美3p在线观看| 男人靠女人免费视频网站| 久久电影网站中文字幕| 天天躁日日躁狠狠躁av麻豆男男| 国产夜色精品一区二区av| av最新在线观看| 黑人狂躁日本妞一区二区三区| 在线观看一二三区| 亚洲国产精彩中文乱码av在线播放| 国产一二三区在线视频| 欧美激情一区二区三区久久久| 日韩成人影音| 国产亚洲欧美另类一区二区三区| 日韩理论在线| 午夜精品久久久久久久无码| 韩国三级在线一区| 性高潮久久久久久久| 亚洲午夜久久久久久久久电影院| 91麻豆精品在线| 亚洲激情免费观看| av在线播放观看| 国产精品嫩草视频| 亚洲美女久久| 人妻无码久久一区二区三区免费| 美女视频黄频大全不卡视频在线播放| 日韩精品人妻中文字幕有码| 亚洲四区在线观看| 日本成人一级片| 精品视频偷偷看在线观看| 污视频网站在线免费| 成人久久久久久| 成人在线免费观看视频| 久久9精品区-无套内射无码| 成人激情小说乱人伦| 男人的天堂久久久| 91精品欧美综合在线观看最新| 福利视频在线看| 欧美最猛性xxxxx(亚洲精品)| 91成人精品在线| 欧美日韩一级在线| 美女网站色91| 一级二级黄色片| 在线中文字幕一区| 精品无吗乱吗av国产爱色| 欧美一级免费视频| 久久久免费毛片| 97视频久久久| 成人白浆超碰人人人人| 国产亚洲色婷婷久久99精品| 日韩亚洲国产中文字幕欧美| a级影片在线观看| 99久久久精品免费观看国产| 中文在线日韩| 免费黄视频在线观看| 一区2区3区在线看| 亚洲黄色精品视频| 欧美精品激情blacked18| 日韩一级淫片| www.国产在线播放| 99久久er热在这里只有精品15| 日本午夜精品理论片a级app发布| 亚洲国产精品va在线观看黑人| 国产精品探花在线| 国偷自产av一区二区三区小尤奈| 亚洲激情自拍| 亚洲人人夜夜澡人人爽| 色吊一区二区三区| 91激情在线| 91九色露脸| 精品1区2区3区4区| 男生草女生视频| 欧美日韩久久久久久| 黄色片免费在线观看| www国产亚洲精品| 性欧美xxxx大乳国产app| xxxx日本黄色| 欧美日韩精品专区| 91福利国产在线观看菠萝蜜| 国产98在线|日韩| 亚洲综合不卡| 91视频免费看片| 日韩精品一区二区三区中文不卡| 69av成人| 日韩精品久久久免费观看 | 欧美视频在线免费看| 国产精品麻豆一区二区三区 | 久久久久97| 91n.com在线观看| 亚洲欧美中日韩| 日本久久一级片| 国产精品老女人视频| 欧美成人高清| a毛片毛片av永久免费| 欧美日本一区二区在线观看| 国精一区二区三区| 日韩国产精品一区二区| 国产激情一区二区三区四区| 精品美女久久久久| www.久久撸.com| 农村少妇一区二区三区四区五区 | 久久99久久久久久久久久久| 久久国产在线视频| 亚洲性生活视频在线观看| 久久伊人影院| 久久久久狠狠高潮亚洲精品| 亚洲精品欧美激情| 九九九伊在人线综合| 成人资源视频网站免费| 视频一区国产视频|