Lottie動(dòng)畫(動(dòng)畫的未來(lái))

我們?cè)谄綍r(shí)開發(fā)中晰筛,要實(shí)現(xiàn)一個(gè)動(dòng)畫眶俩,大多數(shù)情況直接用Gif圖莹汤,但Gif占用空間較大,而且需要為各種屏幕尺寸颠印、分辨率做適配纲岭;另一種是用幀動(dòng)畫抹竹,但是幀動(dòng)畫占用空間比 Gif 還要大的多,也需要做適配止潮。

當(dāng)項(xiàng)目中有很多地方用到動(dòng)畫效果的時(shí)候會(huì)添很多Gif窃判,這樣打出來(lái)的包會(huì)很大。這時(shí)候我們會(huì)要求設(shè)計(jì)師壓縮尺寸后再給我們喇闸,這樣包是變小了袄琳,但是用戶體驗(yàn)會(huì)很差,動(dòng)效很不清晰仅偎。

這種情況下跨蟹,就輪到?Lottie、 (LottieFiles) 登場(chǎng)了橘沥,阿里新出的?犸良https://design.alipay.com/emotion就是基于Lottie動(dòng)畫的窗轩。設(shè)計(jì)師做好動(dòng)效后只需導(dǎo)出很小的Json文件,把Json文件拖入工程座咆,在iOS (安卓痢艺、Web) 代碼中讀取這份Json文件,解析動(dòng)畫結(jié)構(gòu)和參數(shù)信息并渲染就行了介陶。

一堤舒、集成:


在iOS中使用需要先集成Lottie的SDK (Swift版本OC版本)哺呜,然后直接在代碼中使用就可以了舌缤。

1、Swift:

pod'lottie-ios'

代碼:

import UIKit

import Lottie

class ViewController: UIViewController {

? ? let lottieView = AnimationView()

? ? override func viewDidLoad() {

? ? ? ? super.viewDidLoad()

? ? ? ? lottieView.frame = CGRect(x: 0, y: 0, width: 400, height: 400)

? ? ? ? lottieView.center = self.view.center

? ? ? ? lottieView.animation = Animation.named(“l(fā)ottieJson“)//綁定Lottie動(dòng)畫

? ? ? ? lottieView.loopMode = .loop//動(dòng)畫效果 執(zhí)行單次某残、多次

? ? ? ? lottieView.contentMode = .scaleAspectFit

? ? ? ? lottieView.backgroundBehavior = .pauseAndRestore//設(shè)置進(jìn)入后臺(tái)是否暫停動(dòng)畫

? ? ? ? self.view.addSubview(lottieView)

? ? ? ? lottieView.play()//開始動(dòng)畫

? ? ? ? //lottieView.stop()//暫停動(dòng)畫

}}


2国撵、OC:

pod'lottie-ios_Oc'

代碼:

#import "ViewController.h"

#import <lottie_ios_Oc/LOTAnimationView.h>

@implementation ViewController

- (void)viewDidLoad {

? ? [super viewDidLoad];

? ? LOTAnimationView *lottieView = [LOTAnimationView animationNamed:@"lottieJson"];//綁定Lottie動(dòng)畫

? ? lottieView.frame = CGRectMake(0, 0, 400, 400);

? ? lottieView.center = self.view.center;

? ? lottieView.loopAnimation = YES;//動(dòng)畫效果 執(zhí)行單次、多次

? ? lottieView.contentMode = UIViewContentModeScaleAspectFit;

? ? //handleWillEnterBackground 進(jìn)入后臺(tái)默認(rèn)暫停動(dòng)畫

? ? [self.view addSubview:lottieView];

? ? [lottieView playWithCompletion:^(BOOL animationFinished) {

? ? ? //動(dòng)畫完成后可執(zhí)行自定義操作

? ? }];

? ? [lottieView play];//開始動(dòng)畫

? ? //[lottieView stop];//暫停動(dòng)畫

}

@end


二玻墅、總結(jié)


1介牙、優(yōu)點(diǎn):

·開發(fā)成本低,設(shè)計(jì)師導(dǎo)出Json文件給到開發(fā)即可澳厢。

·動(dòng)畫實(shí)現(xiàn)成功率高环础,只要設(shè)計(jì)師能設(shè)計(jì)出來(lái)的都能實(shí)現(xiàn)。

·支持服務(wù)端URL方式創(chuàng)建剩拢,通過服務(wù)端配置Json文件隨時(shí)替換動(dòng)畫线得,不用重新發(fā)版。

·iOS徐伐、安卓框都、Web可用同一套Json文件。

·支持轉(zhuǎn)場(chǎng)動(dòng)畫,Presen/Dismiss時(shí)可做轉(zhuǎn)場(chǎng)效果魏保。


2熬尺、缺點(diǎn):

?·低配設(shè)備上解析大Json文件可能比較耗時(shí)、異常谓罗,適用硬件性能較好的設(shè)備粱哼。

解決:

·手機(jī)性能不斷升級(jí),將有效緩解這方面問題檩咱;

·切換頁(yè)面后暫停動(dòng)畫揭措,節(jié)省資源;

·設(shè)計(jì)師注意好這些注意事項(xiàng)?Lottie避坑指南刻蚯、常見錯(cuò)誤绊含、免異常總結(jié)炊汹,也能讓動(dòng)畫更流暢躬充;


如果覺得本文有用,可以在下方點(diǎn)個(gè)贊讨便。如果發(fā)現(xiàn)有遺漏或不對(duì)的地方充甚,請(qǐng)?jiān)谙路搅粞詞


資料:

從Json到Animationlottie-ios學(xué)習(xí)筆記霸褒、使用Lottie播放動(dòng)畫伴找、安卓集成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市废菱,隨后出現(xiàn)的幾起案子技矮,更是在濱河造成了極大的恐慌,老刑警劉巖殊轴,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件穆役,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡梳凛,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門梳杏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)韧拒,“玉大人,你說我怎么就攤上這事十性∨岩纾” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵劲适,是天一觀的道長(zhǎng)楷掉。 經(jīng)常有香客問我,道長(zhǎng)霞势,這世上最難降的妖魔是什么烹植? 我笑而不...
    開封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任斑鸦,我火速辦了婚禮,結(jié)果婚禮上草雕,老公的妹妹穿的比我還像新娘巷屿。我一直安慰自己,他們只是感情好墩虹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開白布嘱巾。 她就那樣靜靜地躺著,像睡著了一般诫钓。 火紅的嫁衣襯著肌膚如雪旬昭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天菌湃,我揣著相機(jī)與錄音问拘,去河邊找鬼。 笑死慢味,一個(gè)胖子當(dāng)著我的面吹牛场梆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纯路,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼或油,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了驰唬?” 一聲冷哼從身側(cè)響起顶岸,我...
    開封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎叫编,沒想到半個(gè)月后辖佣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搓逾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年卷谈,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霞篡。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡世蔗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朗兵,到底是詐尸還是另有隱情污淋,我是刑警寧澤,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布余掖,位于F島的核電站寸爆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赁豆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一仅醇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧歌憨,春花似錦着憨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至心铃,卻和暖如春准谚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背去扣。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工柱衔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人愉棱。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓唆铐,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親奔滑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艾岂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,089評(píng)論 1 32
  • 好的APP用戶界面動(dòng)畫如果通過精準(zhǔn)的設(shè)計(jì)就能極大地提升用戶體驗(yàn)。這也常常是區(qū)分APP優(yōu)秀與否的一個(gè)重要標(biāo)準(zhǔn)朋其。實(shí)現(xiàn)與...
    透支未來(lái)閱讀 28,528評(píng)論 6 48
  • 好的APP用戶界面動(dòng)畫如果通過精準(zhǔn)的設(shè)計(jì)就能極大地提升用戶體驗(yàn)王浴。這也常常是區(qū)分APP優(yōu)秀與否的一個(gè)重要標(biāo)準(zhǔn)。實(shí)現(xiàn)與...
    coder_小玖閱讀 5,833評(píng)論 9 45
  • 突然想要寫一點(diǎn)東西梅猿,不喜歡現(xiàn)在路上無(wú)處不在的商業(yè)化氓辣,原本代表浪漫的鮮花和無(wú)邪的孩童,加在一起卻變成了功利的噪音袱蚓,不...
    獨(dú)孤姬閱讀 192評(píng)論 0 0
  • 文/龍龍 想寫又寫不出什么東西來(lái)的傻小子 第三天了钞啸,他就這樣不說話三天了,誰(shuí)能想到會(huì)這樣喇潘。 三天前体斩,因?yàn)橐患∈鲁?..
    故賜人間閱讀 67評(píng)論 0 0