如何在Android中实现rgb颜色

时间:2013-12-29 18:59:32

标签: android

如何将声明的变量赋予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?
        }

    }

3 个答案:

答案 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));
}