[解決済み] Android標準のボタンを色違いに
2022-03-14 06:09:21
質問
クライアントのブランドイメージに合うように、Androidの標準ボタンの色を少し変えたいのですが、どうすればいいですか?
今のところ、これを実現する最も良い方法は
Button
にある drawable に変更します。
res/drawable/red_button.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/red_button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/red_button_focus" />
<item android:drawable="@drawable/red_button_rest" />
</selector>
しかし、そのためには、カスタマイズしたいボタンごとに3つの異なるdrawableを実際に作成する必要があります(静止状態のボタン用、フォーカス時のボタン用、押された時のボタン用の3つ)。 これは、私が必要とするよりも複雑で非DRYに思えます。
私が本当にしたいことは、ボタンにある種の色変換を適用することです。 私がやっているよりも簡単にボタンの色を変更する方法はありますか?
どのように解決するのですか?
私は、これをすべて1つのファイルでかなり簡単に行えることを発見しました。 以下のようなコードを
custom_button.xml
を設定し
background="@drawable/custom_button"
をボタンビューで表示します。
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" >
<shape>
<gradient
android:startColor="@color/yellow1"
android:endColor="@color/yellow2"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/grey05" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item android:state_focused="true" >
<shape>
<gradient
android:endColor="@color/orange4"
android:startColor="@color/orange5"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/grey05" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
<item>
<shape>
<gradient
android:endColor="@color/blue2"
android:startColor="@color/blue25"
android:angle="270" />
<stroke
android:width="3dp"
android:color="@color/grey05" />
<corners
android:radius="3dp" />
<padding
android:left="10dp"
android:top="10dp"
android:right="10dp"
android:bottom="10dp" />
</shape>
</item>
</selector>
関連
-
[解決済み】このアクティビティでは、Theme.AppCompatテーマ(またはその子孫)を使用する必要があります。
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
最新のandroidプロジェクトディレクトリにあるarmeabi-v7aとarmeabiの具体的な意味とその違いを教えてください。
-
GoogleMapと連携し、位置情報の取得が可能
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] Androidの「コンテキスト」とは何ですか?
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み] ActionBarの戻るボタンをカスタマイズする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
Gradle の同期に失敗しました。com.android.tools.build:gradle が見つかりませんでした。
-
AndroidStudio reports Could not resolve all artifacts for configuration ':app:classpath'.
-
AndroidがMainActivityが包含クラスでないというエラーを報告する
-
例外「指定された子にはすでに親がいます」の解決方法。removeViewを呼び出す必要があります" の解決方法(ソースコード付き例)
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
アンドロイドの遅延実行のいくつかの方法
-
Android studio 制約レイアウト ConstraintLayout
-
[解決済み】カスタムサークルボタン