1

8x8 フォームに 64 個のトグルボタンのグリッドがあります。アプリが実行されると、各トグルボタンの背景/ドローアブルが色に設定されます。これは、xml ではなく、プログラムで行われます。私の問題は、アプリのグラフィカルレイアウトのボタンの間にスペースがあるように見えますが、アプリを実行してボタンを色に変更すると、スペースが消えることです。これにより、ボタンが 1 つのプレートのように見え、ボタン間に定義がありません。

私が欲しいのは、ボタンに境界線を付けて、各ボタンの場所を明確にすることです。

ボタンの機能は、押されている音符を示すために使用されます。ボタンを押すと、ボタンの色がグレーから水色に変わり、ノートがシーケンスに追加されます。

したがって、アクティブ化/非アクティブ化すると変化するカスタムデザインのトグルボタンに境界線を配置し、境界線を両方の状態に保つことができる必要があります。また、最大幅と最大高さを設定し、ボタンを分離するためにボタンにパディングを設定しようとしました。

コードの例は次のとおりです。

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
        }
    }
}

どんな助けでも大歓迎です。

4

1 に答える 1

0

正しい方法:背景を変更するためにisCheckedを手動で呼び出さないでください。セレクターを使用します。境界線を使用して9パッチを描画するか、形状を作成できます(ストロークを使用して境界線の色を設定し、塗りつぶしを使用して塗りつぶしの色を設定します)。

または、必要な機能をサポートするカスタムトグルボタンを作成します。

于 2013-01-18T11:35:37.950 に答える