android自定义togglebutton边框

时间:2013-01-17 19:04:47

标签: android border togglebutton

我有一个8x8格式的64个togglebuttons网格。当应用程序运行时,它会将每个togglebutton的background / drawable设置为一种颜色。这是在程序中完成的,而不是xml。我的问题是,虽然应用程序的图形布局上的按钮之间似乎有空格,但当应用程序运行时,并将按钮更改为颜色时,空间消失。这使按钮看起来像一个单板,按钮之间没有定义。

我想要的是在按钮上放置一个边框,以清楚地显示每个按钮的位置。

按钮的功能用于指示按下的音符。按下按钮时,按钮的颜色从灰色变为浅蓝色,并将音符添加到序列中。

所以我需要能够在自定义设计的togglebutton上放置边框,在激活/停用时会更改边框,使边框保持在两种状态。我也试过设置最大宽度和最大高度,并在按钮上设置填充以试图分开它们。

代码示例如下:

public class MainActivity extends Activity implements OnClickListener
{
    ToggleButton tg1;
    ....
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ....
        tg1 = (ToggleButton) findViewById(R.id.toggleButton1);
        tg1.setOnClickListener(this);
        ....
        tg1.setBackgroundColor(0xffcccccc); //set button grey
    }
    public void onClick(View v)
    {
        if((tg1.isChecked()))
        {

            tg1.setBackgroundColor(0xff00ffff);   //set button blue
        }
        else
        {

            tg1.setBackgroundColor(0xffcccccc); //set button grey
        }
    }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

正确的方法:不要手动调用isChecked来改变背景。使用选择器。您可以使用边框绘制9-patch或创建shape(使用笔划设置边框颜色,使用实体设置填充颜色)。

或创建自定义togglebutton以支持所需的功能。