我有一个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
}
}
}
非常感谢任何帮助。
答案 0 :(得分:0)
正确的方法:不要手动调用isChecked来改变背景。使用选择器。您可以使用边框绘制9-patch或创建shape(使用笔划设置边框颜色,使用实体设置填充颜色)。
或创建自定义togglebutton以支持所需的功能。