Android Jelly Bean通知中的双状态操作按钮
我正在尝试在通知中实现媒体播放器控件。我需要播放/暂停按钮在“播放”可绘制和“暂停”可动态绘制之间切换(基本上由用户触摸)。例如,当用户触摸“暂停”按钮时,需要切换到“播放”。当用户触摸“播放”按钮时,需要切换回“暂停” 我假设最好的方法是创建StateListDrawable XML并将其设置为操作按钮的drawable。不幸的是,我似乎无法使StateListDrawable正常工作。以下是我的可drawable XML文件:Android Jelly Bean通知中的双状态操作按钮,android,notifications,drawable,statelistdrawable,Android,Notifications,Drawable,Statelistdrawable,我正在尝试在通知中实现媒体播放器控件。我需要播放/暂停按钮在“播放”可绘制和“暂停”可动态绘制之间切换(基本上由用户触摸)。例如,当用户触摸“暂停”按钮时,需要切换到“播放”。当用户触摸“播放”按钮时,需要切换回“暂停” 我假设最好的方法是创建StateListDrawable XML并将其设置为操作按钮的drawable。不幸的是,我似乎无法使StateListDrawable正常工作。以下是我的可drawable XML文件: <?xml version="1.0" encoding=
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_first="true"
android:drawable="@drawable/pause_track_notification" />
<item android:state_last="true"
android:drawable="@drawable/play_track_notification" />
</selector>
我是否遗漏了XML中的任何重要内容?现在,我只是得到了一个显示“播放/暂停”按钮的空白区域。如何使其工作?谢谢!将此用作切换按钮和以下选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_checked="true"
android:drawable="@drawable/pause_track_notification" />
<item android:state_checked="false"
android:drawable="@drawable/play_track_notification" />
<item android:drawable="@drawable/play_track_notification" /> <!-- the default -->
</selector>
用于切换按钮和以下选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_checked="true"
android:drawable="@drawable/pause_track_notification" />
<item android:state_checked="false"
android:drawable="@drawable/play_track_notification" />
<item android:drawable="@drawable/play_track_notification" /> <!-- the default -->
</selector>
use toogle buttons,check here use toogle buttons,check here Hey感谢您的快速回复!使用您的代码可以让我再次看到默认的可绘制图标。但是,当我点击它时,它不会改变图标。我还需要做些什么来让它工作吗?记住,我在通知中将此可绘制按钮用于操作按钮。这可能是你的代码不起作用的原因吗?谢谢!你可能想添加android:state\u focused=“true/false”
,但是当按下切换按钮时会起作用,我不知道你在说tapped时会想些什么?我试过android:state\u focused
,但这也不起作用“我的意思是当用户按下按钮时。抱歉搞混了,我们现在都在同一页上。您的代码是否适用于通知中的操作按钮?或者它只对ToggleButton UI元素显式起作用吗?它在那里不起作用,但这里给您一个提示:将该按钮设置为imagebutton,并将其放入xml属性android:onClick=“someFunction”
中,在该公共void someFunction(){}中,您可以检查当前可视化的图像并对其进行更改。就这么简单。啊,我明白你想说什么了。虽然我不明白如何使用android:onClick
属性,但是NotificationBuilder
只允许我为操作按钮设置一个可绘制按钮?下面是我设置操作按钮的方式:builder.addAction(R.drawable.play\u pause\u notification\u light,“,playbausetrackpendingent)代码>嘿,谢谢你的快速回复!使用您的代码,我可以再次看到默认的drawable。但是,当我点击它时,它不会改变图标。我还需要做些什么来让它工作吗?请记住,我在通知中使用此可绘制按钮作为操作按钮。这可能是你的代码不起作用的原因吗?谢谢您可能想添加android:state\u focused=“true/false”
,但按下切换按钮时会起作用,我不知道您在说tapped时想到了什么?我尝试了android:state\u focused
,但这也不起作用。我所说的“点击”是指当用户按下按钮时。抱歉搞混了,我们现在都在同一页上。您的代码是否适用于通知中的操作按钮?或者它只对ToggleButton UI元素显式起作用吗?它在那里不起作用,但这里给您一个提示:将该按钮设置为imagebutton,并将其放入xml属性android:onClick=“someFunction”
中,在该公共void someFunction(){}中,您可以检查当前可视化的图像并对其进行更改。就这么简单。啊,我明白你想说什么了。虽然我不明白如何使用android:onClick
属性,但是NotificationBuilder
只允许我为操作按钮设置一个可绘制按钮?下面是我设置操作按钮的方式:builder.addAction(R.drawable.play\u pause\u notification\u light,“,playbausetrackpendingent)代码>