「セレクター」を使用して、押された、フォーカスされたなど、さまざまな状態のボタンにさまざまな画像を指定する場合、ボタンごとに xml ファイルを作成する必要がありますか? アプリには約 15 ~ 20 個のボタンがあるので、xml を 1 つだけ記述してその一部を参照する方法があるかどうか疑問に思っていました。
ありがとうクリス
「セレクター」を使用して、押された、フォーカスされたなど、さまざまな状態のボタンにさまざまな画像を指定する場合、ボタンごとに xml ファイルを作成する必要がありますか? アプリには約 15 ~ 20 個のボタンがあるので、xml を 1 つだけ記述してその一部を参照する方法があるかどうか疑問に思っていました。
ありがとうクリス
の一部を参照する方法はありませんStateListDrawable。少なくとも私が知っていることです。
ただし、StateListDrawables通常はボタンの背景に使用されるため、そもそもなぜ複数必要なのかは不明です。
StateListDrawable は、実行時に状態が変化すると、現在の状態に基づいて Drawable を変更します。最初に使用する Drawable を選択することは、最初に Drawable を指定するときに既に行っていることです。
LevelListDrawable のようなクラスでさえ、Drawable が使用されている実際のビューではなく、Drawable にレベルを指定する必要があり、AFAIK Android は、Drawable が状態を処理できるかどうかを自動的にチェックし、そうであればそれらを渡します。Drawable は、Drawable が使用されているビューへの参照を取得しません。
ボタンごとに複数の Drawable ファイルを作成するだけです。テキストの色、パディング、フォント サイズなど、ボタンの特定の属性を共有する場合は、Android スタイルを使用する必要があります。
Android スタイルでは、スタイルを継承できる BlueButton、RedButton、GreenButton などのスタイルを使用できます。したがって、テキストの色、テキストのサイズ、テキストの影、青のドローアブルなどを設定する BlueButton を作成し、BlueButton を継承して Drawable のみを変更する別のスタイルを Red に作成し (ただし、必要な属性は変更できます)、次にButton ウィジェットで使用するだけです。スタイルをリンクするには複数の Drawable ファイルが必要ですが、スタイルはすべて 1 つのファイルに含めることができます。