日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android点击改变背景色的动画,Lottie-android 修改动画颜色

發布時間:2024/10/14 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android点击改变背景色的动画,Lottie-android 修改动画颜色 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看到這邊文章,默認你已經懂得 lottie 庫的基本使用了。不懂請移步官網。https://airbnb.design/lottie/

我遇到的問題是需要修改動畫的顏色。

比如在一個按鈕的點擊動效中,可能需要根據按鈕的狀態動態的修改動效的顏色,那么該怎么操作呢?

首先要明白在顏色繪制的兩種類型:填充和描邊,即我們在view 的繪制中的solid 和stroke

在bodymovin生成的json動效文件中對應的是如下

"nm": "填充 1",//此動效中顏色繪制的名稱,可自定義

"mn": "ADBE Vector Graphic - Fill"//顏色繪制的類型 填充,固定參數

"nm": "描邊 1",//此動效中顏色繪制的名稱,可自定義

"mn": "ADBE Vector Graphic - Stroke",//顏色繪制的類型 描邊,固定參數

接下來在代碼中如何操作呢:

第一種方式 通過需要修改顏色的keypath 的關鍵字匹配來批量操作

//方法一

...

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

LottieAnimationView mirror = findViewById(R.id.mirror);

mirror.addLottieOnCompositionLoadedListener(

new LottieOnCompositionLoadedListener() {

@Override

public void onCompositionLoaded(LottieComposition lottieComposition) {

//過濾所有的keypath

List list = mirror.resolveKeyPath(

new KeyPath("**"));

//通過匹配關鍵字的深度,來過濾需要改變顏色的keypath

for (KeyPath path : list) {

Log.d("mirror", path.keysToString());

//通過匹配關鍵字的深度對深度為1 和2 的填充色進行修改

if (path.matches("填充 1", 2)||path.matches("填充 1", 1) ) {

mirror.addValueCallback(path,

//修改對應keypath的填充色的屬性值

LottieProperty.COLOR,

new SimpleLottieValueCallback() {

@Override

public Integer getValue(

LottieFrameInfo lottieFrameInfo) {

return COLORS[1];

}

});

}else if(path.matches("描邊 1", 2) ){ //通過匹配關鍵字的深度修改深度為2 的描邊色進行修改

mirror.addValueCallback(path,

//修改對應keypath的描邊色的屬性值

LottieProperty.STROKE_COLOR,

new SimpleLottieValueCallback() {

@Override

public Integer getValue(

LottieFrameInfo lottieFrameInfo) {

//修改對應keypath的描邊色

return COLORS[1];

}

});

}

}

}

});

...

}

第二種方式 直接輸入具體的keypath 來進行修改

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

LottieAnimationView mirror = findViewById(R.id.mirror);

mirror= findViewById(R.id.blur);

mirror.addLottieOnCompositionLoadedListener(

new LottieOnCompositionLoadedListener() {

@Override

public void onCompositionLoaded(LottieComposition lottieComposition) {

List list = mirror.resolveKeyPath(

new KeyPath("**"));

//這段代碼就是為了打印出所有的keypath 讓你判斷哪些需要修改顏色

for (KeyPath path : list) {

Log.d("mirror", path.keysToString());

}

KeyPath keyPath1 = new KeyPath("Rectangle 17","填充 1");

mirror.addValueCallback(keyPath1,

//修改對應keypath的填充色的屬性值

LottieProperty.COLOR,

new SimpleLottieValueCallback() {

@Override

public Integer getValue(

LottieFrameInfo lottieFrameInfo) {

return COLORS[1];

}

});

KeyPath keyPath2 = new KeyPath("Rectangle 20","Rectangle","描邊 1");

mirror.addValueCallback(keyPath2,

//修改對應keypath的填充色的屬性值

LottieProperty.STROKE_COLOR,

new SimpleLottieValueCallback() {

@Override

public Integer getValue(

LottieFrameInfo lottieFrameInfo) {

return COLORS[1];

}

});

}

});

}

代碼中會打印出所有的keypath 在所有的keypath 中,你選擇對應路徑且末尾帶有ADBE Vector Graphic - Fill對應的 "nm": "填充 1" 或ADBE Vector Graphic - Stroke 對應的 "nm": "描邊 1" 中的 填充和描邊對應的字樣它們可能會是"nm": "Fill1" 和"nm": "STROKE 1"

如果你的動效實在是復雜到有無數個keypath 需要修改,且命名和深度都沒有規律可言,那么不如和動效師再溝通溝通。

OTHER

打印出來的keypath 如下,僅供參考

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [空 8]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 矩形路徑 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 填充 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 矩形路徑 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 填充 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 矩形路徑 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 填充 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 矩形路徑 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 填充 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 矩形路徑 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 填充 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 矩形路徑 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 2, Rectangle 2, 填充 1]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 21]

2020-04-29 02:16:58.649 12813-12813/com.example.animatedemo D/mirror: [Rectangle 21, Rectangle]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 21, Rectangle, 描邊 1]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 20]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 20, Rectangle]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 20, Rectangle, 描邊 1]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 19]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 19, Rectangle]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 19, 填充 1]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 18]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 18, Rectangle]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 18, 填充 1]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 17]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 17, Rectangle]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 17, 填充 1]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 16]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 16, Rectangle]

2020-04-29 02:16:58.650 12813-12813/com.example.animatedemo D/mirror: [Rectangle 16, 填充 1]

總結

以上是生活随笔為你收集整理的android点击改变背景色的动画,Lottie-android 修改动画颜色的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本69视频| 无码人妻丰满熟妇区五十路 | wwwjavhd| 无码精品一区二区三区在线播放 | 国产色播av在线 | 亚洲精品成人av | 成人三级在线播放 | 欧美77777 | 毛片一级在线观看 | 男人的天堂av网站 | 国产婷婷一区二区三区久久 | 日韩成人av影院 | 双乳被四个男人吃奶h文 | 人人爽人人爽人人爽人人爽 | 手机av资源 | 日韩欧美国产精品综合嫩v 国产小毛片 | 最新中文av | 在线看黄网站 | av在线不卡免费看 | 秋霞成人 | 亚洲一线二线在线观看 | 黄网免费在线观看 | 国产999| 日韩一区二区在线观看视频 | 午夜免费成人 | 妹子干综合 | 日本视频在线免费观看 | 国产综合精品 | 国产精品播放 | www在线看| 国产伦精品一区二区三区精品 | 老妇高潮潮喷到猛进猛出 | 超碰这里只有精品 | 91色视频| av在线播放一区 | 亚洲色图欧美色 | chien国产乱露脸对白 | 丰满人妻老熟妇伦人精品 | 香蕉视频在线观看免费 | 91美女啪啪| 国产日韩大片 | 艹久久| 久久久久国产精 | 男人的天堂一区二区 | av亚州| 丝瓜av| 欧美交换国产一区内射 | 亚洲人精品午夜射精日韩 | 99riav国产精品视频 | 久久久久久久国产精品美女 | 精品视频免费在线观看 | 欧美女优在线观看 | 性xxx欧美 | 99久久久无码国产 | 久久精品一二三区 | 成在线人免费视频 | 阿v天堂2017 欧美小视频在线观看 | 亚洲av无码不卡一区二区三区 | 成人一级片视频 | 白白色在线观看 | 日本一本久久 | 国产精品免费在线 | 亚洲久爱| 夜夜撸| 欧美性成人 | 久久久久亚洲av片无码下载蜜桃 | 国产精品久久久久久白浆 | 91福利片 | 亚洲成人自拍 | 欧美特级aaa | 一区免费 | 黄频在线 | 日韩aa视频| 成人va视频 | 蜜臀一区二区三区精品免费视频 | 黄色特一级 | 国产美女网站视频 | 国产成人精品视频在线观看 | 黄色小视频国产 | 国产色黄| 韩国色网 | 在线播放一区二区三区 | 日韩人妻一区二区三区蜜桃视频 | 麻豆黄色网址 | av大片免费在线观看 | 免费看黄的网址 | 老熟妻内射精品一区 | 欧美亚洲在线视频 | 精品国产一区二区三区久久狼黑人 | 97视频播放 | 久久久国产打桩机 | 97色伦97色伦国产欧美空 | 日韩大片一区 | 国产三级伦理片 | 好邻居韩国剧在线观看 | 久久在线一区二区 | 国产毛片网 | 淫综合网 | 国产成人久久精品77777综合 |