单击 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)
}