1

テキストを水平方向の中央に配置する必要があるボタンがあります。ボタンの背景に 9 パッチがない場合、Gravity は正常に機能します。しかし、バック グラウンドとして 9 パッチを追加するとすぐに、重力が左にシフトし、重力がどのように設定されていても、テキストは動きません。

他のスレッドで提案されているように、パディングを 0dip、-1px、@null に設定しようとしました。それらのどれも機能しませんでした。私の要件はAPIレベル8に固定されているため、 setBackgroundResource() を使用してコード内から背景を変更しているため、背景を設定する他の方法はオプションではありません。また、ボタンを選択状態にする必要があるため (トグル ボタンのように)、セレクター リストを使用してこれを行うことはできません。

入力はありますか?

4

5 に答える 5

7

これは、9 パッチ イメージでコンテンツ エリアを割り当てたためです (右下の部分を参照)。

通常、Right と Bottom の部分はコンテンツのパディング(オプション)用であるため、プログラミングによってパディングを設定する場合は、9 パッチの Bottom と Right の領域を操作しないでください。

ここに画像の説明を入力

于 2012-11-06T04:44:29.040 に答える
1

この問題に対する別のアプローチを次に示します。Android で 9 パッチを使用して水平方向および/または垂直方向に中央揃え

RelativeLayout9パッチの背景で使用し、TextView中に入れます。その後、9 パッチのマージンとパディングを壊すことなく、好きなようにテキストの書式設定と配置を行うことができます。

于 2014-04-16T07:34:41.133 に答える