Android實(shí)現(xiàn)視圖View流光動(dòng)效
效果預(yù)覽

功能說(shuō)明:
支持任意類型視圖View上面的流光動(dòng)效(包括但不限于View、ImageView、TextView、Button或者他們的任意組合的ViewGroup);
支持修改光效寬度;
支持修改光效顏色;
支持修改光效移動(dòng)速率;
支持設(shè)置View動(dòng)效的圓角;
支持修改光效入射角度(斜率);

注: 底部有顏色有圓角的按鈕是一個(gè)設(shè)置有圖片background、白色文字“立即開(kāi)啟”的TextView,圖片的圓角與光效圓角無(wú)關(guān)。
使用方式:
在工程根目錄的build.gradle中添加
allprojects {repositories {maven { url 'https://www.jitpack.io' }...}}
添加依賴
implementation 'com.gitee.chockqiu:LightingAnimationView:1.0'在xml中添加布局
<com.chockqiu.view.LightingAnimationViewandroid:id="@+id/m_lighting_animation_view"android:layout_width="0dp"android:layout_height="0dp"app:layout_constraintBottom_toBottomOf="@id/btnOpenBox"app:layout_constraintLeft_toLeftOf="@+id/btnOpenBox"app:layout_constraintRight_toRightOf="@+id/btnOpenBox"app:layout_constraintTop_toTopOf="@id/btnOpenBox" />
參數(shù)說(shuō)明:
w:光效寬度(單位px)~ 1)radius:圓角大小(單位px)-1表示無(wú)限循環(huán),0表示不循環(huán)(動(dòng)畫會(huì)有一次但不循環(huán)),其他值表示循環(huán)的次數(shù)duration:一次動(dòng)畫需要消耗的時(shí)間(單位ms)colors & positions:顏色值和它所對(duì)應(yīng)的位置(數(shù)組, 值范圍0~1)
舉例:
{0x00FFFFFF, 0xAAFFFFFF, 0xAAFFFFFF, 0x00FFFFFF}[0,0.4f,0.5f,1]
表示光效顏色(漸變色) 由0x00FFFFFF ->0xAAFFFFFF ->0xAAFFFFFF ->0x00FFFFFF變化,它們倆數(shù)組大小必須一致
為什么中間有兩個(gè)0xAAFFFFFF?對(duì)應(yīng)0.4f和0.5的位置。這樣做是為了中間這個(gè)顏色寬度大一點(diǎn),如果還需要加大則可以將0.4f和0.5f改成0.2f和0.8f(值相互遠(yuǎn)離);如果要小,除了兩個(gè)值相互靠近外(0.42f,0.48f),還可以刪除其中一個(gè):
{0x00FFFFFF, 0xAAFFFFFF, 0x00FFFFFF}[]
到這里就結(jié)束啦。
評(píng)論
圖片
表情
