qt在propertyanimation中,已經準備了很多常用的動畫曲線,比如說linear、quad、elastic等。這些基本已經可以覆蓋我們大部分需求了,但是也不是所有的。
比如說,google非常有名的設計風格material,就有自己的動畫曲線,如下圖:
這個呢,在qml中是沒有的。要實現它,最簡單的方法就是自定義乙個貝塞爾曲線。
別被這個名字嚇到了,實際上我們要用到的就是4個數字,沒有什麼數學公式,而且現在都有很多的繪製工具可以直接匯出這4個值。
例如,material中已經說了,這4個值為:0.4, 0.0, 0.2, 1
分別對應:cx1, cy1, cx2, cy2
我們只要直接設定到propertyanimation中就可以使用了。
使用方式如下:
id: animationfory
target: testrectangle
property: "y"
from: 482
to: 82
duration: 3000
easing.type: easing.bezier
easing.beziercurve: [ 0.40, 0.05, 0.22, 0.97, 1, 1 ]
running: true
loops: animation.infinite}
主要就是以下這兩行
easing.type: easing.bezier
easing.beziercurve: [ 0.40, 0.05, 0.22, 0.97, 1, 1 ]
告訴propertyanimation,要用貝塞爾曲線的動畫,然後引數分別是0.40, 0.05, 0.22, 0.97, 1, 1
注意,最後的兩個1是固定的且不可修改。
引數上我裡做了一些細微的修改,為了更加的擬合上的效果。
最後我做出來是這樣的效果:
這個藍色區線的,是我從material官方上截圖下來的
x軸方向是線性的
y軸方向,用的是貝塞爾曲線
自定義貝塞爾曲線
有時候現有的控制項無法滿足我們的需求,打不到我們想要的效果,這時候就需要我們自己來寫乙個自定義view,來滿足自己的需求。而貝塞爾曲線,就是其中的一種方式,比如說我們需要畫乙個弧形的線條或者是圖形,這時候就可以使用貝塞爾曲線來進行,最簡單的就是畫乙個圓形。下面就是介紹一下貝塞爾曲線 貝塞爾曲線,就是...
QT QML 在qml中自定義訊號
服從真理,就能征服一切事物。塞涅卡 例項 自定義檔案 moveyou.qml import qtquick 2.5 import qtquick.controls 1.4 import qtquick.layouts 1.2 import qtquick.window 2.2 rectangle,注...
AS 中的自定義元件動畫
自定義元件動畫 某些元件 如 accordion combobox 和 tree 元件 提供動畫來演示元件狀態之間的過渡 例如,在 accordion 子項之間切換 擴充套件組合框下拉列表和擴充套件或摺疊樹形資料夾時 另外,元件提供與專案 如列表中的行 的選擇和取消選擇有關的動畫。可以通過以下樣式來...