Android開源:MagicFloatView-可配置及自定義拓展漂浮路徑的迷你版輕量級 MagicFlyLinearLayout 漂浮控件

zyzy6235 9年前發布 | 11K 次閱讀 安卓開發 Android開發 移動開發

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 漂浮動畫路徑使用方式

  1. 繼承 AbsAnimatorEvaluator 實現相關方法(動畫起始、終止坐標,動畫路徑及屬性封裝)。
  2. 在 AnimatorCreater 中添加新實現動畫路徑類型,同時在 attrs 中 app:flyAnimatorType 屬性添加對應新類型值字符串。
  3. 使用 MagicFlyLinearLayout 方式同上,只是配置 app:flyAnimatorType 為你自己動效路徑的類型即可。

 

 

 本文由用戶 zyzy6235 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!