如何将声明的变量赋予setBackgrounColor(Color.rgb(?,?,?))方法?例如像EditText edit1; .... edit3。 SetBackgrounColor(Color.rgb(edit1,edit2,edit3)。一般来说如何从EditText实现rgb颜色?我尝试过以下代码,但只显示任意数字的黑色。
public class DisplayColor extends Activity {
Button display;
EditText red;
EditText green;
EditText blue;
TextView colorDisplay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.color);
display=(Button) findViewById(R.id.button1);
red=(EditText) findViewById(R.id.editText1);
green=(EditText) findViewById(R.id.editText2);
blue=(EditText) findViewById(R.id.editText3);
colorDisplay=(TextView) findViewById(R.id.textiewcolor);
display.setOnClickListener(new DisplayColorButton());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.display_color, menu);
return true;
}
class DisplayColorButton implements OnClickListener{
public void onClick(View arg){
colorDisplay.setBackgroundColor(Color.rgb(???)); //Here inside the
//method how can I call the declared EditTexts?
}
}
答案 0 :(得分:3)
如果您有3个数字,r,g和b在0-255范围内,您可以使用:
int color = 0xff000000 // opacity
| (r << 24)
| (g << 16)
| b;
view.setBackgroundColor(color);
答案 1 :(得分:0)
你可以这样做:
r=Integer.parseInt(firstEdittext.getText().toString());
g=Integer.parseInt(secondEdittext.getText().toString());
b=Integer.parseInt(thirdEdittext.getText().toString());
text1.setBackgroundColor(Color.rgb(r, g, b));
答案 2 :(得分:0)
使用getText().toString()
访问编辑文本的内容,Integer.parseInt()
或类似内容将其转换为整数。
类似的东西:
public void onClick(View arg){
int r = Integer.parseInt(red.getText().toString());
int g = Integer.parseInt(green.getText().toString());
int b = Integer.parseInt(blue.getText().toString());
colorDisplay.setBackgroundColor(Color.rgb(r, g, b));
}