Android開源:MagicFloatView-可配置及自定義拓展漂浮路徑的迷你版輕量級 MagicFlyLinearLayout 漂浮控件
MagicFloatView
一個可配置及自定義拓展漂浮路徑的迷你版輕量級 MagicFlyLinearLayout 控件,支持多種配置效果,譬如自上而下飄落的表情彩蛋(類似 QQ 空間或者微信效果)、自下而上散亂的點贊心型漂浮(類似優酷直播點贊按鈕效果),具體不同配置展示效果如下圖。 Demo 中附帶一個魔幻粒子鏈動畫背景自定義 View,支持粒子鏈隨手指觸摸移動變換,具體效果如下圖背景所示(手指觸摸不同區域時,隨機粒子鏈跟隨魔幻移動)。

說明文檔
如下是關于 MagicFlyLinearLayout View 的相關使用方式、屬性說明、拓展自定義的解釋說明。
使用樣例
<cn.magic.library.MagicFlyLinearLayout
android:id="@+id/fly_layout"
app:flyAnimatorType="B2TScatter"
app:flyDuration="4000"
android:layout_width="200dp"
android:layout_height="800dp"
android:orientation="vertical"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:gravity="bottom|center_horizontal">
<Button
android:id="@+id/fly_btn"
android:text="點贊啦"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</cn.magic.library.MagicFlyLinearLayout>
mFlyLinearLayout = (MagicFlyLinearLayout) this.findViewById(R.id.fly_layout);
mFlyButton = (Button) this.findViewById(R.id.fly_btn);
mFlyButton.setOnClickListener(this);
mFlyLinearLayout.addDrawable(R.drawable.favourite_love_blue);
mFlyLinearLayout.addDrawable(R.drawable.favourite_love_pink);
mFlyLinearLayout.addDrawable(R.drawable.favourite_love_red);
mFlyLinearLayout.addDrawable(R.drawable.favourite_love_yellow);
//click button
mFlyLinearLayout.flying();</code></pre>
已實現類說明
類別
類名
說明
library
MagicFlyLinearLayout
魔幻漂浮控件,支持自上而下表情雨及自下而上點贊擴散效果,支持表情及擴散 bitmap 自定義,支持拓展定義漂浮路徑效果。
library
ValueState
輔助 MagicFlyLinearLayout 動畫效果使用的屬性 Bean 結構,包含 bitmap、scale、alpha、position 等屬性。
library
AnimatorCreater
一個類似工廠模式的創建類,負責依據 MagicFlyLinearLayout 的不同 app:flyAnimatorType 屬性類型決定使用哪種 AbsAnimatorEvaluator 動畫效果。
library
AbsAnimatorEvaluator
一個抽象的漂浮動畫類,供 MagicFlyLinearLayout 中元素的漂浮使用。
library
B2TScatterEvaluator
自下而上點贊效果的動畫路徑實現類,類似直播軟件或者優酷直播間點贊心型漂浮效果,如上圖右下角點擊效果。
library
T2BRainEvaluator
自上而下隨機飄落的動畫路徑效果,類似微信關鍵字表情飄落彩蛋效果,如上圖自上而下飄落的表情效果。
demo
ParticleChainView
一個粒子鏈跟隨手指移動的魔幻效果,僅 Demo 版本。
MagicFlyLinearLayout 控件屬性說明
屬性
含義
app:flyDuration
整數,單個漂浮元素在屏幕漂浮的事件(動畫時長),默認 4000 ms。
app:flyAnimatorType
單個漂浮元素在屏幕漂浮的效果類型,當前支持 B2TScatter(點贊效果) 與 T2BRainNormal(表情漂浮雨效果) 類型,其他類型可自己繼承 AbsAnimatorEvaluator 實現。
拓展 MagicFlyLinearLayout 的 app:flyAnimatorType 漂浮動畫路徑使用方式
- 繼承 AbsAnimatorEvaluator 實現相關方法(動畫起始、終止坐標,動畫路徑及屬性封裝)。
- 在 AnimatorCreater 中添加新實現動畫路徑類型,同時在 attrs 中 app:flyAnimatorType 屬性添加對應新類型值字符串。
- 使用 MagicFlyLinearLayout 方式同上,只是配置 app:flyAnimatorType 為你自己動效路徑的類型即可。
本文由用戶 zyzy6235 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!