[解決済み】新しい素材テーマで戻る矢印の色を変更する方法は?
2022-04-18 21:55:14
質問
SDKをAPI21にアップデートしたところ、バックアップ/アップのアイコンが左向きの黒い矢印になってしまいました。
グレーにしたいのですが。どうしたらいいでしょうか?
例えば、Playストアでは、矢印は白色です。
いくつかのスタイルを設定するために、このようなことをしました。私は
@drawable/abc_ic_ab_back_mtrl_am_alpha
に対して
homeAsUpIndicator
. そのdrawableは透明(アルファのみ)ですが、矢印は黒で表示されています。のように色を設定できるのでしょうか?
DrawerArrowStyle
. または、唯一の解決策は、私の
@drawable/grey_arrow
に使用し、それを
homeAsUpIndicator
.
<!-- Base application theme -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
<item name="homeAsUpIndicator">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
<item name="android:homeAsUpIndicator" tools:ignore="NewApi">@drawable/abc_ic_ab_back_mtrl_am_alpha</item>
</style>
<!-- ActionBar style -->
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:background">@color/actionbar_background</item>
<!-- Support library compatibility -->
<item name="background">@color/actionbar_background</item>
</style>
<!-- Style for the navigation drawer icon -->
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
<item name="spinBars">true</item>
<item name="color">@color/actionbar_text</item>
</style>
今までの私の解決策は
@drawable/abc_ic_ab_back_mtrl_am_alpha
をフォトエディターで好きな色に塗りました。これはうまくいっています。
@color/actionbar_text
のように
DrawerArrowStyle
.
解決方法は?
コードで実現することができます。back arrow drawable を取得し、その色をフィルターで変更し、back button として設定します。
final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
upArrow.setColorFilter(getResources().getColor(R.color.grey), PorterDuff.Mode.SRC_ATOP);
getSupportActionBar().setHomeAsUpIndicator(upArrow);
リビジョン1です。
API23(Marshmallow)より、描画可能なリソースである
abc_ic_ab_back_mtrl_am_alpha
に変更されます。
abc_ic_ab_back_material
.
EDITです。
このコードを使用すると、望む結果を得ることができます。
toolbar.getNavigationIcon().setColorFilter(getResources().getColor(R.color.blue_gray_15), PorterDuff.Mode.SRC_ATOP);
関連
-
[解決済み] TextViewの文字色をコードで設定する方法は?
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] 文字列の長さに応じて文字列をトリミングする
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み] node.jsのコンソールのフォントカラーを変更する方法は?
-
[解決済み] svg要素の色を変更するには?
-
[解決済み] 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 getResources().getDrawable() 非推奨 API 22
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] Java Genericメソッドをstaticにするには?
-
[解決済み] double 型を Int 型に変換、切り捨て
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] raw 型のメンバへのアンチェックの呼び出し
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] java swingアプリケーションでJCEがプロバイダBCを認証できない
-
[解決済み] Android 6.0 Marshmallow (API 23) で getColor(int id) が非推奨になりました。