一个切换button背景的方法:getBackground(),setBackgroundDrawable

来源:互联网 发布:海洋cms模板怎么用 编辑:程序博客网 时间:2024/06/03 16:33

场景:假设页面中有多个button,点击其中一个button1,button1背景改变并保持,其他button则会默认状态。

方法:通过getBackground()获取控件的默认drawable,通过setBackgroundDrawable设置给其他控件。

代码实例:

     //
     setRed = new Button(mContext);
     setRed.setText(R.string.set_red);
     setRed.setX(xBtn);
     setRed.setY(yBtn);
     setRed.setBackgroundColor(Color.RED);
     setRed.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    graffitiView.setPaintColor(Color.RED);
    
    
    setGreen.setBackgroundDrawable(drawable);
    setBlue.setBackgroundDrawable(drawable);
    setRed.setBackgroundColor(Color.RED);
    
    setRed.setFocusable(false);
    setGreen.setFocusable(false);
    setBlue.setFocusable(false);
    
   }
  });
     this.addView(setRed, mLayoutParamsBtn);
     
     //
     setGreen = new Button(mContext);
     setGreen.setText(R.string.set_green);
     setGreen.setX(wBtn + xBtn*2);
     setGreen.setY(yBtn);
     drawable = setGreen.getBackground();
     setGreen.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    graffitiView.setPaintColor(Color.GREEN);
    
    setRed.setFocusable(false);
    setGreen.setFocusable(false);
    setBlue.setFocusable(false);
    
    setRed.setBackgroundDrawable(drawable);
    setBlue.setBackgroundDrawable(drawable);
    setGreen.setBackgroundColor(Color.GREEN);
   }
  });
     this.addView(setGreen, mLayoutParamsBtn);
     
     //
     setBlue = new Button(mContext);
     setBlue.setText(R.string.set_blue);
     setBlue.setX(wBtn*2 + xBtn*3);
     setBlue.setY(yBtn);
     setBlue.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    graffitiView.setPaintColor(Color.BLUE);
    
    setRed.setFocusable(false);
    setGreen.setFocusable(false);
    setBlue.setFocusable(false);
    
    setRed.setBackgroundDrawable(drawable);
    setGreen.setBackgroundDrawable(drawable);
    setBlue.setBackgroundColor(Color.BLUE);
    
   }
  });
     this.addView(setBlue, mLayoutParamsBtn);

0 0
原创粉丝点击