Toolbarのメニューアイコンの色を変える方法
Toolbarの右側に並ぶメニューアイコンの色を変える方法です
アプリの外観を動的に変える機能を持ったアプリなどは、
メニューアイコンの色も変えると、統一感や、洗練された印象を与えることができます。
メニューアイコンは、以下の方法で、色や透明度を変えることができます。
Toolbar yourToolbar; // Toolbarの参照 Menu menu = yourToolbar.getMenu(); // Menuオブジェクトを取り出し、 for (int i = 0;i < menu.size();i++) { MenuItem item = menu.getItem(i); // さらに、各アイテムを取り出します Drawable drawable = item.getIcon(); // アイテムのDrawableを取り出し、 drawable.setColorFilter(Color.Red, PorterDuff.Mode.SRC_ATOP); drawable.setAlpha(205); // 外観を調整 item.setIcon(drawable); // 再びセットします }
getIconの際に、メニューアイテムにアイコンを設定していないとエラーになりますのでご注意ください。
nullかどうかのチェックをお願いします。
カラーフィルターをかけるメソッド、
setColorFilter(Color.Red, PorterDuff.Mode.SRC_ATOP)
例では赤を指定しています。
イメージビュー等のカラーフィルターと異なり、引数が2つあります。
1つめに色を指定し、2つめに
PorterDuff.Mode.SRC_ATOP
を指定することで、アイコンの不透明部分に色を乗せることができます。
setAlpha(205)
は、その名の通り透明度をセットします。
不透明の80%の透明度に指定しています。