いつもお世話になっております。
表題の通りですが、一部のアイコンだけ画像で表示がしたいのですが、それは可能でしょうか?
「初めての方」だけ画像で表示したいです。
bottomnavigationViewはマテリアルナビゲーションを採用しており、参考サイトは下記です。
https://material.io/develop/android/components/bottom-navigation
自分のやりたいことは初めての方のみ複数色を使用したアイコンもしくは画像を表示させて他のアイテムと差別化が目的なので、もし別案で解決策があればお聞きしたいです、、
MainActivity
Java
1public class MainActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_main); 7 8 WebView webView = findViewById(R.id.webview); 9 10 webView.setWebViewClient(new WebViewClient()); 11 12 webView.loadUrl("https://google.com"); 13 14 //ナビゲーションバーインスタンス化 15 BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation); 16 17 //これでcolor.xmlからメインカラーを取得 18 int colorId = getResources().getColor(R.color.main_color); 19 20 //色を配列化 21 int[] colors = new int[] { 22 //非選択 グレイ 23 Color.GRAY, 24 //選択 各メインカラー 25 colorId 26 }; 27 28 //色を配列化 29 int[] ripple = new int[] { 30 //選択 各メインカラー 31 colorId, 32 colorId 33 }; 34 35 //ナビゲーションバーの状態を配列化 36 int [][] states = new int [][]{ 37 //非選択 38 new int[] { android.R.attr.state_enabled, -android.R.attr.state_pressed, -android.R.attr.state_selected}, // enabled 39 //選択 40 new int[] {android.R.attr.state_enabled, android.R.attr.state_selected}, // selected 41 }; 42 43 //下部にあるナビゲーションボトムバーのアイテム一つ一つを取得 44 BottomNavigationMenuView menuView = (BottomNavigationMenuView) bottomNavigationView.getChildAt(0); 45 46 //ここですべてのタブ文字を表示している 47 menuView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED); 48 49 //テキスト色を付与する 50 menuView.setItemTextColor(new ColorStateList(states, colors)); 51 //アイコン色を付与する 52 menuView.setIconTintList(new ColorStateList(states, colors)); 53 //アイコンのサイズを変更 54 menuView.setItemIconSize(80); 55 56 bottomNavigationView.setItemRippleColor(new ColorStateList(states, ripple)); 57 58 bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { 59 60 @Override 61 public boolean onNavigationItemSelected(@NonNull MenuItem item) { 62 63 switch (item.getItemId()) { 64 case R.id.nav_home: 65 item.setChecked(true); 66 break; 67 case R.id.navi_search: 68 item.setChecked(true); 69 break; 70 case R.id.navi_keep: 71 item.setChecked(true); 72 break; 73 case R.id.navi_mypage: 74 item.setChecked(true); 75 break; 76 case R.id.navi_beginner: 77 item.setChecked(true); 78 break; 79 default: 80 item.setChecked(false); 81 return false; 82 } 83 return false; 84 } 85 }); 86 } 87}
xml
1<?xml version="1.0" encoding="utf-8"?> 2<menu xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:bootstrap="http://schemas.android.com/apk/res-auto" 4 xmlns:app="http://schemas.android.com/apk/res-auto"> 5 <item 6 android:id="@+id/nav_home" 7 android:icon="@drawable/ic_home_black_24dp" 8 bootstrap:showAsAction="always|withText" 9 android:title="ホーム"/> 10 <item 11 android:id="@+id/navi_search" 12 android:icon="@drawable/ic_search_black_24dp" 13 bootstrap:showAsAction="always|withText" 14 android:title="探す"/> 15 <item 16 android:id="@+id/navi_keep" 17 android:icon="@drawable/ic_star_border_black_24dp" 18 bootstrap:showAsAction="always|withText" 19 android:title="気になる"/> 20 <item 21 android:id="@+id/navi_mypage" 22 android:icon="@drawable/ic_baseline_account_circle_24" 23 bootstrap:showAsAction="always|withText" 24 android:title="マイページ"/> 25 <item 26 android:id="@+id/navi_beginner" 27 android:icon="@mipmap/beginner_icon" 28 bootstrap:showAsAction="always|withText" 29 android:title="初めての方"/> 30</menu>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。