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實現一張向量圖適配所有顏色~
可以減少不少資源
相關文章
- PHP 修改圖片顏色(生成彩色二維碼)PHP
- 修改SVG圖片的大小和顏色SVG
- CSS實現的背景圖片替代顏色程式碼CSS
- Android 使用ColorMatrix改變圖片顏色AndroidColorMatrix
- 修改VS的程式碼高亮顏色
- 修改Android 介面顏色Android
- 技巧分享:如何利用CSS屬性修改圖片顏色?CSS
- svg圖片 填充顏色SVG
- Pypycharm修改程式碼字型大小及修改顏色PyCharm
- 兩行 CSS 程式碼實現圖片任意顏色賦色技術CSS
- 如何在 CSS 背景圖片中對 SVG 圖片進行著色 ,修改svg圖片顏色CSSSVG
- 短視訊系統,android Switch修改顏色修改樣式滑塊顏色Android
- iOS 顏色製作背景圖片iOS
- [SVG]修改固定顏色為填充顏色SVG
- 天地圖修改主題顏色修改背景色地圖
- Android實現修改狀態列背景 字型 圖示顏色Android
- CSS顏色程式碼CSS
- 動態更改svg圖片的顏色SVG
- 利用bitmap將圖片部分顏色透明
- Swift 實現更改圖片的顏色Swift
- 修改UITabBarItem字型顏色UItabBar
- IDEA中修改程式碼中的註釋顏色Idea
- 微信小程式修改radio顏色微信小程式
- 一個提取圖片顏色的React元件React元件
- Chrome 獲取網頁顏色(文字、圖片)Chrome網頁
- iOS 去除 TabBarItem的圖片預設顏色iOStabBar
- css顏色程式碼大全CSS
- Html顏色程式碼表HTML
- 用SVG的圖片格式如何劃入更改圖片的顏色?SVG
- Eclipse背景顏色修改Eclipse
- iOS UISearchBar 修改背景顏色iOSUI
- ffmpeg修改顏色空間
- 使用canvas給banner圖片加個顏色條Canvas
- 程式碼中修改TextView的DrawableLeft圖片TextView
- css顏色程式碼對照CSS
- 顏色程式碼選取工具
- Android圖片壓縮實現過程及程式碼Android
- 利用CSS改變圖片顏色的多種方法!CSS