上記の答えでうまくいくはずですが、あなたの場合は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の整数の形式で入力を取得していることを前提としています。
編集:実際には、アルファ部分を変更したいだけの場合は、はるかに簡単です。ユーザーからの入力を0〜255の整数として取得し、検証して、次のようにすることができます。
EditText alpha;
String alphaString;
try {
alphaString = Integer.toHexString(alpha.getText().toString());
} catch (NumberFormatException ex) {
//Throw warning
}
view.setBackgroundColor(Color.parseColor("#" + alphaString + "000000"));