顏色的值是以16進位制來表示,而顏色的透明度值要設定在原有顏色值上則需要左移6位。
Java的位運算是先將數值轉化為二進位制數,然後再移動相應位數,由於二進位制左移4位對應十六進位制是左移1位,所以要設定顏色透明度的百分比就得先將255乘以透明度的百分比,然後再左移4*6=24位。
int color = ContextCompat.getColor(getApplicationContext(), android.R.color.holo_blue_dark);
//這裡的mPercent就是顏色透明度的百分比
mView.setBackgroundColor(((255 * mPercent) << 24) | color);
複製程式碼