さまざまな色のボタンが必要ですが、オンフォーカスとオンクリックの状態を維持するために、デフォルトのボタンの背景リソースを使用しながらこれを実行したいと思います。これは、アプリのOSのデフォルトのハイライト色を使用したいためです。これは常にオレンジ色ではありません(HTC Senseでは緑色になります)。
ボタンの背景のドローアブルにカラーフィルターを追加すると、うまく機能することがわかりました(この場合は青)。
myButton.getBackground()。setColorFilter(Color.parseColor(this.getString(R.color.button_blue))、Mode.MULTIPLY);
ただし、ボタンにフォーカスを合わせるかクリックすると、カラーフィルターと背景の描画可能なオレンジが混ざり合うため、厄介なorange_blueに変わります。
このカラーフィルターは、デフォルトのボタンのstatelistdrawable内でフォーカスされていない/クリックされていない9パッチの描画可能なものにのみ設定したいと思います。他にこれを行う方法がわかりません。
ここに同様の解決策があります: 修正済み:「Android:フォーカス/押された色の検出」 ..。
しかし、私はその解決策にいくつかの懸念があります。主に、OSがデフォルトボタンのグラフィックを変更した場合はどうなりますか?通常のフォーカスされていない/押されていないグラフィックがアプリにハードコードされているため、フローが中断されます。
たぶん誰かがデフォルトのグラフィックをアプリにハードコーディングするのが良いか悪いかについてコメントできますか?OSがグラフィックを完全に変更する可能性は何ですか?
何か助けてください?どうもありがとう!!