android顏色處理:得到已知顏色的深色或者淺色
android的顏色處理在2d繪圖的時候有可能用到,剛好碰到需要根據已知顏色獲得其相應深色或者淺色的情況,我知道的有兩種方法。
第一種:將color轉換成hsv顏色空間改變hsv的值,再轉換成int類型的color值:
轉換成深色:
public int getDarkerColor(int color){ float[] hsv = new float[3]; Color.colorToHSV(color, hsv); // convert to hsv // make darker hsv[1] = hsv[1] + 0.1f; // more saturation hsv[2] = hsv[2] - 0.1f; // less brightness int darkerColor = Color.HSVToColor(hsv); return darkerColor ; }
轉換成淺色:
public int getBrighterColor(int color){ float[] hsv = new float[3]; Color.colorToHSV(color, hsv); // convert to hsvhsv[1] = hsv[1] - 0.1f; // less saturation hsv[2] = hsv[2] + 0.1f; // more brightness int darkerColor = Color.HSVToColor(hsv); return darkerColor ;
}</pre>
第二種簡單,但是感覺不太科學,而且只能轉換成更淺的顏色:
int newColor = Color.parseColor("#0E" + oldColor.replace("#", ""));可以看出其實就是在原有顏色的基礎上增加了不透明度。
本文由用戶 LinPalmerst 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!