单击 android 时更改工具栏中图标的颜色
Change color of icon in toolbar when click in android
我想在单击时将工具栏中收藏夹图标的颜色更改为红色。我该怎么做
*试试这个代码 -
btn.setOnClickListener(view -> {
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.white)));
});
您可以创建一个全局菜单变量并在 onCreateOptionsMenu()
中对其进行初始化,然后在您的 onClick()
中使用它。
private Menu menu;
在你的onCreateOptionsMenu()
this.menu = menu;
在您按钮的 onClick()
方法中
menu.getItem(0).setIcon(ContextCompat.getDrawable(this, R.drawable.red_heart));
这是执行此操作的方法。您可以更改图标颜色,但该功能仅适用于 API 26+。要使其在 API 26 以下工作,您需要完全更改图标,因为没有其他方法可以更改颜色。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.delete_icon) {
isSelected = !isSelected
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Toggle state on devices with API 26+
if (isSelected) {
item.iconTintList = ContextCompat.getColorStateList(this, R.color.red)
} else {
item.iconTintList = ContextCompat.getColorStateList(this, R.color.white)
}
} else {
// Toggle state on devices with API below 26
if (isSelected) {
item.icon =
ContextCompat.getDrawable(this, R.drawable.ic_baseline_favorite_24_red)
} else {
item.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_favorite_24)
}
}
return true
}
return super.onOptionsItemSelected(item)
}
我想在单击时将工具栏中收藏夹图标的颜色更改为红色。我该怎么做
*试试这个代码 -
btn.setOnClickListener(view -> {
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.white)));
});
您可以创建一个全局菜单变量并在 onCreateOptionsMenu()
中对其进行初始化,然后在您的 onClick()
中使用它。
private Menu menu;
在你的onCreateOptionsMenu()
this.menu = menu;
在您按钮的 onClick()
方法中
menu.getItem(0).setIcon(ContextCompat.getDrawable(this, R.drawable.red_heart));
这是执行此操作的方法。您可以更改图标颜色,但该功能仅适用于 API 26+。要使其在 API 26 以下工作,您需要完全更改图标,因为没有其他方法可以更改颜色。
override fun onOptionsItemSelected(item: MenuItem): Boolean {
if (item.itemId == R.id.delete_icon) {
isSelected = !isSelected
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Toggle state on devices with API 26+
if (isSelected) {
item.iconTintList = ContextCompat.getColorStateList(this, R.color.red)
} else {
item.iconTintList = ContextCompat.getColorStateList(this, R.color.white)
}
} else {
// Toggle state on devices with API below 26
if (isSelected) {
item.icon =
ContextCompat.getDrawable(this, R.drawable.ic_baseline_favorite_24_red)
} else {
item.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_favorite_24)
}
}
return true
}
return super.onOptionsItemSelected(item)
}