开发者

android get Colour

Hello i have lots of button with the same OnClickListener, the buttons have different colours, how can i get the colour(or the colour resource) of the pressed button ?

Here is the code i use

// declare a OnClickListener that will execute different actions
        // depending on the view that was clicked
        View.OnClickListener colorButtonListener = new View.OnClickListener(){
            public void  onClick  (View  v){
                textarea_note.setBackgroundDrawable(v.getBackground());//set edit background the same of the button
                dialog.dismiss();
            }
        };

        Button button1 = (Button) dialog.findViewById(R.id.button1);
        Button button2 = (Button) dialog.findViewById(R.id.button2);
        Button button3 = (Button) dialog.findViewById(R.id.button3);
        Button button4 = (Button) dialog.findViewById(R.id.button4);
        Button button5 = (Button) dialog.findViewById(R.id.button5);
        Button button6 = (Button) dialog.findViewById(R.id.button6);
        Button button7 = (Button) dialog.findViewById(R.id.button7);
        Button button8 = (Button) dialog.findViewById(R.id.button8);
        Button button9 = (Button) dialog.findViewById(R.id.button9);


        /*for changing the colour when the user clicks on a button*/
        button1.setOnClickListener(colorButtonListener);
        button2.setOnClickListener(colorButtonListener);
        button3.setOnClickListener(colorButtonListener);
        button4.setOnClickListener(colorButtonListener);
        button5.setOnClickListener(colorButtonListener);
        button6.setOnClickListener(colorButtonListener);
        button7.setOnClickListener(colorButtonListener);
        button8.setOnClickListener(colorButtonListener);
        button9.setOnClickListener(colorButtonListener);


 开发者_如何学JAVA       /**for the round corner*/
        Resources res = this.getResources();
        button1.setBackgroundDrawable(this.Sd(res.getColor(R.color.color1x1)));
        button2.setBackgroundDrawable(this.Sd(res.getColor(R.color.color1x2)));
        button3.setBackgroundDrawable(this.Sd(res.getColor(R.color.color1x3)));
        button4.setBackgroundDrawable(this.Sd(res.getColor(R.color.color2x1)));
        button5.setBackgroundDrawable(this.Sd(res.getColor(R.color.color2x2)));
        button6.setBackgroundDrawable(this.Sd(res.getColor(R.color.color2x3)));
        button7.setBackgroundDrawable(this.Sd(res.getColor(R.color.color3x1)));
        button8.setBackgroundDrawable(this.Sd(res.getColor(R.color.color3x2)));
        button9.setBackgroundDrawable(this.Sd(res.getColor(R.color.color3x3)));



        //now that the dialog is set up, it's time to show it    
        dialog.show();


As far as i know, You can get the color values(for eg: R.color.green) but you can get a drawable object of the button.

button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
            Drawable d = v.getBackground()
            }
        });


I've found this method, but i have never try it :

   int color = v.getSolidColor();


TextView txt = (TextView)findViewById(R.id.txtColor);
txt.setText("Color Of Button ");
View.OnClickListener colorButtonListener = new View.OnClickListener(){
        public void  onClick  (View  v){
            txt.setTextColor(v.getSolidColor());
            textarea_note.setBackgroundDrawable(v.getBackground());//set edit background the same of the button
            dialog.dismiss();
            Log.i("Color of Button","Color = "+v.getSolidColor() );
        }
    };

Note : follow this link : getSolidColor()

in your Code , try to replace the :

button1.setBackgroundDrawable(this.Sd(res.getColor(R.color.color1x1)));

with :

button1.setBackgroundRessource(R.color.color1x1);

download this project , i've created 4 buttons, and i get the color of the background ;) , enjoy it

Get Color of Buttons

Hope it helps

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜