[英]Icon in png for bottom navigation bar android
在“我的底部”導航欄中,我在菜單 XML 中使用了一個圖標,圖標顏色在選擇時隨主題顏色而變化。
在選項卡單擊圖標完全更改后,我完全不明白為什么 png 圖像會發生這種情況。
底部導航
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@color/white"
app:labelVisibilityMode="labeled"
app:itemBackground="@color/transparent"
app:itemTextColor="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:menu="@menu/bottom_navigation_main" />
選擇器
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_compas"
android:state_checked="false"/>
<item android:drawable="@drawable/discover_green"
android:state_enabled="true"/>
</selector>
底部導航菜單
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/chatMenuFragment"
android:enabled="true"enter code here
android:icon="@drawable/chat_selector"
android:title="Chat"
app:showAsAction="always" />
<item
android:id="@+id/contactsFragment"
android:enabled="true"
android:icon="@drawable/people_selector"
android:title="People"
app:showAsAction="always" />
<item
android:id="@+id/discoverFragment"
android:enabled="true"
android:icon="@drawable/discover_selector"
android:title="Discovery"
android:backgroundTint="@color/white"
app:showAsAction="always|withText" />
<item
android:id="@+id/myProfileFragment"
android:enabled="true"
android:icon="@drawable/user_selector"
android:title="My"
app:showAsAction="always|withText" />
</menu>
截圖
選擇前:
選擇后:
"@drawable/discover_green" 檢查這個 drawble ,這是你按下指南針后得到的嗎?
您正在使用可繪制的狀態列表,因此當您按下指南針時,圖標會更改為discover_green,它與您定義的相同。 解決方案是完全刪除狀態列表 drawble 並僅使用圖標或將綠點圖標更改為您想要使用的東西。
問題是選定狀態對圖標的整個不透明部分應用濾色器。 要修復您選擇的圖標,您必須使綠色圓圈上的箭頭透明而不是白色。 請設計師更改它或由您自己在某個編輯器中進行。
您的問題是因為discover_green.png
文件沒有透明區域。 So when the menu item is selected the green tint is applied to the whole image hence you see a green circle.
但是在ic_compas.png
除了ic_compas.png
之外的所有內容都是透明的,這意味着如果您將其用作icon
,則圖像中的指南針在被選中時將變為綠色。 為此,您必須將Discovery menu item
修改為
<item
android:id="@+id/discoverFragment"
android:enabled="true"
android:icon="@drawable/ic_compas"
android:title="Discovery"
app:showAsAction="always|withText" />
如果未選擇項目,這將為您提供一個灰色指南針,而在選擇時則為綠色指南針。
您必須同時創建彩色圖標和簡單圖標,並且在選擇時您必須將圖標形式更改為純色,而在未選擇時您必須將顏色圖標更改為純色圖標,這是最簡單的方法。
我遇到了類似的問題,問題是默認情況下底部導航視圖會為可繪制對象添加色調並填充所有不透明的內容(例如您的資產的情況)。
嘗試添加這一行bottomNavigationView.itemIconTintList = null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.