虽然上述答案应该可以解决问题,但对于您的情况,您可能会研究该Color.argb()
方法。不确定您如何获得用户输入,但我们假设它们是EditText
对象:
EditText a, r, g, b;
//initialize them
int aInt, rInt, gInt, bInt;
try {
aInt = Integer.valueOf(a.getText().toString());
bInt = Integer.valueOf(b.getText().toString());
cInt = Integer.valueOf(c.getText().toString());
dInt = Integer.valueOf(d.getText().toString());
} catch (NumberFormatException ex) {
//Throw a warning dialog that the user's input was invalid
}
view.setBackgroundColor(Color.argb(aInt, rInt, gInt, bInt));
这当然是假设您以整数 0-255 的形式获得输入。
编辑:实际上,如果您只是想更改它的 alpha 部分,那就容易多了。您可以从用户那里获取 0-255 的整数形式的输入,验证它,然后执行以下操作:
EditText alpha;
String alphaString;
try {
alphaString = Integer.toHexString(alpha.getText().toString());
} catch (NumberFormatException ex) {
//Throw warning
}
view.setBackgroundColor(Color.parseColor("#" + alphaString + "000000"));