2011-06-22 10 views
0

アクティビティの開始時にボタンを作成するアプリケーションを作成しています(ボタンの数は配列の値の数によって異なります)。個々のボタンの色は配列内の対応する値で定義され、ボタンの色はボタンを作成するときに設定されます。ボタンにはテキストがありません。背景色を直接設定するため、9つのパッチ画像ではありません(ボタンの色は、指定された値に可能な限り近づけなければなりません)。Androidはプログラムでボタンの枠線を作成します

私の問題は、私のレイアウトの背景が黒であることです。また、黒いボタンを持つことも可能です。つまり、いくつかのボタンが見えない場合があるので、私はいくつかのフォームを追加する必要があります。いくつかのグーグルは、これはxmlレイアウトでも簡単ではないことを示唆しています。

これまでのところ、各ボタンの周囲に四角形を描画するのが理想的ではありませんでしたが(理想的ではありませんが...)、問題は、四角形を描くために見ることができる唯一の方法は、私が利用できるとは思わないonDraw。

アイデア?

+0

なぜあなたはonDrawを使用できないと思いますか? – mibollma

+0

を使用するか、9パッチを使用します...特に黒い背景の場合のみ...実際に長方形を描くよりもやや簡単です... – Matthieu

答えて

4

私は、動作しているかどうかわからない(私はそれをテストしていない)ハックを考えることができます。それで遊んで、多分クリーナー液で来てください -

button.setBackgroundColor(whatever);  
Drawable backgroundRes = button.getBackground();  
Drawable drawableRes = loadDrawable(R.drawable.white_outline); 
Drawable[] drawableLayers = { backgroundRes, drawableRes }; 
LayerDrawable ld = new LayerDrawable(drawableLayers); 
button.setBackgroundDrawable(ld); 

PS:謝罪を不正なコードの書式設定のために、私はかなりのStackOverflowの上にそれを正しく行う方法を考え出したていません。

+0

上記のテキスト領域を参照すると、フォーマットするためのアイコンがあります: '{ } 'コードのために、'二重引用符 'はクォートする...ツールチップを参照 – ccheneson

+0

@ccheneson - それを指摘してくれてありがとう。 –

+0

ありがとう!これはうまく動作し、頭痛のすべての種類を解決しています! – chvck

関連する問題