Color物件
color是一個ARGB(A透明度,R就是red,G是gree,B是blue,RGB是光學三原色)格式的不可變的32位值.
例如flutter的logo,是完全不透明的,red部分值是0x42 (66),gree部分值是0xA5 (165),blue部分值是0xF5 (245)。在顏色值通用“雜湊語法”中,它可以寫為#42A5F5。
接下來是一些寫法
Color c = const Color(0xFF42A5F5);
Color c = const Color.fromARGB(0xFF, 0x42, 0xA5, 0xF5);
Color c = const Color.fromARGB(255, 66, 165, 245);
Color c = const Color.fromRGBO(66, 165, 245, 1.0);複製程式碼
如果在使用color時遇到沒有渲染出來的問題,檢查一下顏色值是8位16進位制還是6位16進位制。如果是6位16進位制,會預設在前面補兩個0,這樣這個顏色就是完全透明瞭。
Color c1 = const Color(0xFFFFFF); // fully transparent white (invisible) 完全透明
Color c2 = const Color(0xFFFFFFFF); // fully opaque white (visible) 完全不透明複製程式碼
同時colors裡面定義了一些特殊的顏色型別
Implementers:
建構函式:
用int的低32位作為引數來構造顏色 const
Color.fromARGB(int a, int r, int g, int b)
用4個 int型的低8位整數作為引數來構造顏色 const
Color.fromRGBO(int r, int g, int b, double opacity)
用red,gree,blue,opacity(0到1的小數)作為引數來建立一個顏色物件,類似於css中rgba( ) const
屬性:
hashCode → int:hash code 的值,只讀, override
opacity → double:透明度的小數型別的值,只讀
runtimeType → Type:物件的執行時型別,只讀, inherited
方法:
computeLuminance( ) → double:返回0到1之間的亮度值,0表示最暗,1表示最亮
toString( ) → String:返回此物件的字串表示形式 ,override
withAlpha(int a) → Color: 返回一個新的顏色,但透明度被傳入的引數替換,引數的值區間在0到255
withBlue(int b) → Color:返回一個新的顏色,但blue部分被傳入的引數替換,引數的值區間在0到255
withGreen(int g) → Color: 返回一個新的顏色,但gree部分被傳入的引數替換,引數的值區間在0到255
withOpacity(double opacity) → Color: 返回一個新的顏色,但透明度被傳入的引數替換,引數的值區間在0.0到1.0
withRed(int r) → Color: 返回一個新的顏色,但red部分被傳入的引數替換,引數的值區間在0到255
noSuchMethod(Invocation invocation) → dynamic:訪問不存在方法或屬性時會呼叫該方法
運運算元方法:
operator ==(dynamic other) → bool:覆蓋雙等號運算 ,override
靜態方法:
alphaBlend(Color foreground, Color background) → Color:將第一個引數作為透明顏色覆蓋到第二個引數上,返回組合成的顏色
lerp(Color a, Color b, double t) → Color:在兩種顏色之間進行線性插值