颜色的值是以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);
复制代码