これはかなり古い質問ですが、今でも関連性があると思うので、私の答えは次のとおりです。
最も簡単な方法
レンチハウスの答えは正しいです。それは機能しますが、もっと簡単な方法で行うことができます: 別の背景を追加するだけです。以下の例では、標準的なButton
背景を使用して、より均一なルック アンド フィールを実現しています。
<Spinner
android:id="@+id/my_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/my_prompt"
android:background="@android:drawable/btn_default"
/>
他の回答で使用されているスタイルは、ウィジェットに背景を適用するだけです。これは、ウィジェットに対して直接行うことができるため、新しい xml ファイルを作成する必要がありません。もちろん、とにかくスピナーにスタイルを適用する場合は、そのアプローチに問題はありません。
なんで?
それがどのように機能するかを理解するための鍵は、9-patch PNGs の説明にあります。右側と下部の行はパディングに使用されます。つまり、コンテンツによってスペースが使用されないようにするためです。この場合、内部のテキスト。標準の Spinner 背景では、使用可能なテキスト領域の外側にある右側に矢印のある画像が使用されます。図については、以下の図 1 を参照してください。
図 1. 元の Spinner 暗黒 9 パッチ PNG http://tinypic.com/images/404.gif
図 1. 元Spinner
の暗黒 9 パッチ PNG。
パディングが残っているため、矢印を削除するだけでは不十分です。パディングを減らした新しい 9 パッチ イメージを使用するか (図 1 に基づく例については図 2 を参照)、またはEditText
( @android:drawable/edit_text
) またはButton
( @android:drawable/btn_default
)。
図 2.Spinner
パディングを減らして変更された背景の 9 パッチ PNG。
Spinner
これを理解すると、(実際には、任意のウィジェットの)独自の背景を作成できるようになります。
9パッチファイルのより良い説明はここにあります
SDK からdraw9patch実行可能ファイルを使用してファイルを作成するのは非常に簡単ですが(詳細については、こちらを参照してください)、代わりにPhotoshopやGimpを使用することを妨げるものは何もありません。9 パッチ PNG は単なる PNG であることを忘れないでください。唯一の注意点は、ピクセルの外側の線のみを描画し、残りのピクセルが完全に透明であることを確認することです。境界に近いアンチエイリアシングは、予期しない結果をもたらす可能性があります。