1. 程式人生 > >Android基於Facebook Rebound的動畫效果框架Backboard demo (非常炫酷)

Android基於Facebook Rebound的動畫效果框架Backboard demo (非常炫酷)

Usage

更新build.gradle 

1 2 3 4 dependencies { compile 'com.facebook.rebound:rebound:0.3.8' compile 'com.tumblr.backboard:backboard:+' }

開始

Backboard是一個基於rebound 的框架,它管理spring的使用,簡化了最常用的用例:

  • Actions, such as MotionEvents, are mapped to Springs via Imitators.

  • Springs are mapped to Views and view properties via Performers.

In addition, an Actor wraps the above objects and provides a simple interface for mapping touch motion to a view's position - dragging.

Performers

一個Performer獲取Spring當前的值並把它設定為view的一個屬性值。

1 2 3 Spring bounce = SpringSystem.create().createSpring(); Performer xMotion = new Performer(view, View.TRANSLATION_X);
bounce.addListener(xMotion);

對那些想節約螢幕空間的人來說,可以使用 流式介面 :

1 Spring bounce = SpringSystem.create().createSpring().addListener(new Performer(view, View.TRANSLATION_X));

Imitators

An Imitator constantly perturbs the Spring it is attached to. This perturbation can originate a variety of sources:

  1. A MotionEvent, where the Spring can change based on the action (ACTION_DOWN,ACTION_UP), or imitate a property (x, y, etc.). These are called EventImitators.

  2. Another Spring, which leads to results similar to springs being chained together. These are called SpringImitators.

Imitating Touch

An EventImitator primarily operates with OnTouchListeners. The simplest example is aToggleImitator, which toggles between two different values depending on the touch state:

1 view.setOnTouchListener(new ToggleImitator(spring, 0, 1));

when the user touches the view, a value of 1 is set on the spring, and when the user releases, a value of 0 is set.

Imitating Motion

A MotionImitator is a special type of EventImitator that maps x and y movement to a spring. This is done with MotionProperty enums, which specifies which methods to call in a MotionEventobject. For example, MotionProperty.X.getValue(MotionEvent) calls event.getX(). It also specifies the view property to animate - MotionEvent.X.getViewProperty() corresponds toView.TRANSLATION_X. This is useful for the Actor builder later on. In addition, tracking and following strategies allow for customization of how the event value is mapped to the spring.

Tracking Strategies

Two tracking strategies are available to configure how an imitator tracks its imitatee.

  • TRACK_ABSOLUTE maps the imitatee value directly to the spring.

  • TRACK_DELTA maps the change in the imitatee value (relative to the initial touch) to the spring.

Follow Strategies

Two follow strategies are available to configure how the spring is updated.

  • FOLLOW_EXACT maps the imitatee value directly to the current and end value of the spring.

  • FOLLOW_SPRING maps the imitatee value to the end value of the spring (which allows the spring to overshoot the current position)

Imitating Springs

A SpringImitator is also a SpringListener. When the Spring it is imitating updates, it updates the end value of the Spring it is controlling. Usage is simple:

1 2 3 4 5 6 7 SpringSystem springSystem = SpringSystem.create(); Spring leader = springSystem.createSpring(); Spring follower = springSystem.createSpring(); SpringImitator follow = new SpringImitator(follower); leader.addListener(follow);

Actors

Even though backboard reduces a significant amount of boilerplate code, the Actor class further simplifes view motion by connecting each component together. It also manages aView.onTouchListener() (a MotionListener), which it attaches to the View automatically (this can be disabled). Here is how to create one:

1 2 3 Actor actor = new Actor.Builder(SpringSystem.create(), view) .addTranslateMotion(MotionProperty.X) .build();

in two dimensions:

1 2 3 4 Actor actor = new Actor.Builder(SpringSystem.create(), view) .addTranslateMotion(MotionProperty.X) .addTranslateMotion(MotionProperty.Y) .build();

Two calls to addTranslateMotion(MotionProperty) are needed because each axis is independent of the other. The builder will create an OnTouchListener and attach it to the View, as well as aSpring with the default settings. A Performer is also created and attached to the Spring. When there is a touch event, it is passed to the MotionImitator, which perturbs the spring, which moves the view.

It is also possible to supply your own SpringSystem, Spring, MotionImitator and Performer, and the builder will properly connect them. The first example above can also be expressed as:

1 2 3 4 5 6 7 SpringSystem springSystem = SpringSystem.create(); Spring spring = springSystem.createSpring(); Actor verbose = new Actor.Builder(springSystem, view) .addMotion(spring, new MotionImitator(spring, MotionProperty.X),  new Performer(view, View.TRANSLATION_X) .build();

The View can be also left out of the constructor of the Performer and the Spring out of theMotionImitator (using the default SpringConfig), since the builder will connect them.

1 2 3 4 5 Actor walk = new Actor.Builder(SpringSystem.create(), walker) .addMotion( new MotionImitator(MotionProperty.X), new Performer(View.TRANSLATION_X)) .build();

which can be further simplified to

1 Actor run = new Actor.Builder(SpringSystem.create(), runner).addMotion(MotionProperty.X, View.TRANSLATION_X).build();

and for more sugar, the previous case:

1

相關推薦

Android基於Facebook Rebound動畫效果框架Backboard demo (非常)

Usage 更新build.gradle  1 2 3 4 dependencies { compile 'com.facebook.rebound:rebound:0.3.8' compile 'com.tumblr.backboard:backboard:+' }

android 仿ppt進入動畫效果合集

ppt 效果 動畫 android 進入 EnterAnimationandroid 仿ppt進入動畫效果合集, 百葉窗效果,擦除效果,盒狀效果,階梯效果,菱形效果,輪子效果,劈裂效果,棋盤效果, 切入效果,扇形展開效果,十字擴展效果,隨機線條效果,向內溶解效果,圓形擴展效果, 適用於各種

android四種基本動畫效果使用

1.點選下載 上圖: 包括基礎的動畫 透明度、放大縮小、平移、旋轉、組合動畫、閃爍、彈跳動畫 1.透明度 final Animation alphaAniamtion = new AlphaAnimation(1.0f,0); alphaAniamtion

android 一個有漂亮動畫效果的Dialog

dialogBuilder .withTitle("Modal Dialog") .withTitleColor("#FFFFFF") .withDividerColor("#11000000") .withMessage("This is a modal Dialog.")

Android基於DataBinding的一個基礎框架

開篇廢話 因公司需求,開發了一個基於DataBinding的基礎框架,以後公司可能寫專案都要按這個框架來寫,規範一些,有利於互相讀程式碼。先附上github連結吧——CFramework。 如果不知道什麼是DataBinding,建議先看上一篇文章

Android 自定義View動畫效果進階

RectF oval = new RectF(x, y, x1, y1); paint.setColor(Color.WHITE);//設定圓環的顏色 paint.setStyle(Paint.Style.STROKE);//設定空心 paint.setAntiAlias(true);//消除鋸齒 pain

FaceBook pop 動畫開源框架使用說明

POPdemo A simple demo for facebook's pop framework. pop一共有四個大類 POPSpringAnimation 有彈性效果的動畫類(個人比較喜歡這個) POPBasicAnimation 基本動畫類 POPD

Android UI效果篇-(2)動畫原始碼

FileBrowserView 一個強大的檔案選擇控制元件。介面比較漂亮,使用也很簡單。特點:可以自定義UI;支援複製、剪下、刪除、移動檔案;可以用在Fragment、ativity、DialogFragment中;支援快速切換目錄。 MultiItemRowL

Android 實現 遮罩動畫效果

為了實現遮罩效果動畫。android本身沒有提供api ,需要自己動手實現。 將view和view的parentLy進行相反方向動畫即可實現該效果: AnimatorSet animatorSet

200多種Android動畫效果的強悍框架

lsh ron dmi spl adb 下拉選擇 源代碼 社區 eee admin 發布於2015-10-23 14:33 363/68015 【精品推薦】200多種Android動畫效果的強悍框架,太全了,不看這個,再有動畫的問題,不理你了^@^ 功能模塊

200多種Android動畫效果的強悍框架,太全了

概要: Android近200多種動畫效果集合框架原始碼,太全了,總有你需要的,木有你找不到的,相當強悍,非常棒的產品開發原型參考和學習資料 主要功能列表: 1)Splash動畫 (中心開啟式效果 ) 2)Flip摺疊效果的集合(13種) 3)NineOld集合

android基於開源網絡框架asychhttpclient,二次封裝為通用網絡請求組件

定義 pen ntc ucc 編寫 stat ner href face 網絡請求是全部App都不可缺少的功能,假設每次開發都重寫一次網絡請求或者將曾經的代碼拷貝到新的App中,不是非常合理,出於此目的,我希望將整個網絡請求框架獨立出來,與業務邏輯分隔開,這

Rebound動畫框架簡單介紹

reference enc take euler 構造 技術 systems pty instance Rebound動畫框架簡單介紹 Android菜鳥一枚,有不對的地方希望大家指出,謝謝。 最近在接手了一個老項目,發現裏面動畫框架用的是facebook中的Re

Android動畫效果之Frame Animation(逐幀動畫

想要 顯示 star 載體 rop 復雜 ide sources post 前言: 上一篇介紹了Android的Tween Animation(補間動畫) Android動畫效果之Tween Animation(補間動畫),今天來總結下Android的另外一種動

Android-25種開源動畫框架

提示控件 進度顯示 風格 spl nec 用戶 refresh class art 前言 忙碌的工作終於可以停息一段時間了,最近突然有一個想法,就是自己寫一個app,所以找了一些合適開源控件,這樣更加省時,再此分享給大家,希望能對大家有幫助,此博文介紹的都是UI上面的框架

Android仿騰訊手機管家實現桌面懸浮窗小火箭發射的動畫效果

無標題 服務 ice null obj activit 中間 ktr https 功能分析: 1、小火箭遊離在activity之外,不依附於任何activity,不管activity是否開啟,不影響小火箭的代碼邏輯,所以小火箭的代碼邏輯是要寫在服務中; 2、小火箭掛載在手機

Android 輪播UI效果框架

Android 好用的框架與UI效果demo收集 1.萬能的公告欄輪播 View :BulletinView github https://github.com/Bakumon/BulletinView 2. RecyclerBanner 一個使用Rec

android應用市場、社群客戶端、漫畫App、TensorFlow Demo、歌詞顯示、動畫效果等原始碼

Android精選原始碼 MVP架構Android應用市場專案 android刻度盤控制元件原始碼 Android實現一個社群客戶端 android商品詳情頁上拉檢視詳情 基於RxJava+Retrofit2+Glide+ButterKnife的MVP模式漫畫app原始碼 an

Android 基於google Zxing實現二維碼 條形碼掃描,仿微信二維碼掃描效果

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android 漂浮動畫,下雪動畫效果

因工作需要最近在研究了動畫,先看下效果:   1.先得了解下canvas.drawBitmap(mBitmap, mSrcRect, mDestRect, mBitPaint); 在繪製圖片時,使用,引數分別,圖片bitmap,繪製bitmap自己的區域,繪製bit