如何在android studio中的应用栏上切换菜单图标

时间:2016-01-05 14:19:30

标签: android android-studio material-design

Erm而不是使用切换按钮我可以在应用栏中切换图标吗?

就像当我在应用栏中按下我的图标时,它会变为其他图标

这是我的menu_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="course.examples.healthcare_application.MainActivity">
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="1"
        android:title="@string/action_settings"
        app:showAsAction="never" />

    <!--lower value will be on the left-->
    <item
        android:id="@+id/Bluetooth_connect"
        android:icon="@drawable/ic_bluetooth_white_24dp"
        app:showAsAction="always"
        android:orderInCategory="2"
        android:title="@string/bluetooth_connect" />
</menu>

主要活动代码

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement

        if(id == R.id.Bluetooth_connect){
            Toast.makeText(getApplicationContext(), "Turned on", Toast.LENGTH_LONG).show();

        }

        return super.onOptionsItemSelected(item);
    }
}

2 个答案:

答案 0 :(得分:1)

要实现切换效果,可以在单击按钮时更改按钮的颜色。如果图标是可绘制的,则可以使用tint属性设置颜色。

在xml中,可以使用

设置色调
android:tint="@color/icon_pressed"

在代码中,可以使用

设置色调
imageView.setColorFilter(Color.argb(255, 255, 255, 255));

答案 1 :(得分:0)

您可以在drawable文件夹中的这样的选择器中定义它们:

button_state.xml

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/pressed" />
    <item android:state_pressed="true" android:drawable="@drawable/initialpressed"/>
    <item android:state_checked="true" android:drawable="@drawable/on"/>
    <item android:drawable="@drawable/initial"/>
</selector>

然后在你的按钮中定义它:

android:background="@drawable/button_state"