Android通過程式碼修改圖片顏色
背景
最近公司的詳情頁改版,有一個需求設計同學覺得挺好,需要我們實現出來。
具體的需求大概就是,toolbar 上面的圖示,需要根據滑動的距離去改變顏色~
當然是難不倒我們偉大的工程師(碼農)的,所以討論需求兩小時,開發五分鐘實現了設計的需求。
先看效果圖~
其實需求也就兩點
1.灰色圓圈背景需要根據滑動距離變透明,其實改變它的alpha
值就行了,這個容易。
2.就是白色圖示需要漸變成黑色,這個其實也不難。
主要講一下第二點的實現。
技術點
這個時候肯定需要去查閱下相關API文件了,發現原生確實就有 API 實現,相當的容易。
在官網中發現有這個 API,位於android.support.v4.graphics.drawable.DrawableCompat
下:
中文意思差不多就是可以給指定的drawable
著色。
有了這個 API 就好辦了,我們去監聽下面的控制元件滑動距離,根據距離去設定給圖片著色。
核心程式碼
fun tintDrawable(drawable: Drawable, colors: ColorStateList): Drawable {
val wrappedDrawable = DrawableCompat.wrap(drawable)
DrawableCompat.setTintList(wrappedDrawable, colors)
return wrappedDrawable
}
在需要改變的地方呼叫這行程式碼即可:
imageView.setImageDrawable(tintDrawable(imageView.drawable, ColorStateList.valueOf(Color.argb(alpha, red, green, blue))))
這樣就實現了這個需求了,效果如開頭圖。
題外話
由於有了這個功能,所以我就可以用setTintList實現一張向量圖適配所有顏色~
可以減少不少資源
相關文章
- 修改SVG圖片的大小和顏色SVG
- 修改Android 介面顏色Android
- 修改VS的程式碼高亮顏色
- Pypycharm修改程式碼字型大小及修改顏色PyCharm
- 技巧分享:如何利用CSS屬性修改圖片顏色?CSS
- 兩行 CSS 程式碼實現圖片任意顏色賦色技術CSS
- svg圖片 填充顏色SVG
- 短視訊系統,android Switch修改顏色修改樣式滑塊顏色Android
- 如何在 CSS 背景圖片中對 SVG 圖片進行著色 ,修改svg圖片顏色CSSSVG
- 天地圖修改主題顏色修改背景色地圖
- IDEA中修改程式碼中的註釋顏色Idea
- [SVG]修改固定顏色為填充顏色SVG
- 微信小程式修改radio顏色微信小程式
- CSS顏色程式碼CSS
- 【cesium】修改底圖顏色為藍色科技範兒
- 動態更改svg圖片的顏色SVG
- 利用bitmap將圖片部分顏色透明
- 一個提取圖片顏色的React元件React元件
- Chrome 獲取網頁顏色(文字、圖片)Chrome網頁
- 用SVG的圖片格式如何劃入更改圖片的顏色?SVG
- ffmpeg修改顏色空間
- 使用canvas給banner圖片加個顏色條Canvas
- Android webview圖片過大AndroidWebView
- Linux檔案的顏色程式碼Linux
- 利用CSS改變圖片顏色的100種方法!CSS
- 利用CSS改變圖片顏色的多種方法!CSS
- Android開發——Java程式碼動態改變顏色字型的方法AndroidJava
- win10 工作列顏色修改方法 win10工作列怎麼修改顏色Win10
- 繪製三元圖、顏色空間圖:R語言程式碼R語言
- 如何修改CAD夢想畫圖繪圖視窗的背景顏色繪圖
- Mac資料夾圖示顏色修改工具Color Folder MacMac
- Photoshop2020如何把圖片轉為RGB顏色模式模式
- 修改Kali Linux 2020.1主題顏色Linux
- 如何提取網頁上的顏色,網頁顏色程式碼提取工具ColorWell網頁
- 線上直播原始碼,單獨修改狀態列顏色原始碼
- 直播網站原始碼,修改el-input邊框顏色網站原始碼
- win10 如何修改工作列顏色 win10怎樣修改工作列顏色Win10
- Win10系統怎麼修改桌面工作列顏色?工作列顏色修改步驟教程Win10