连接时不同的 chromecast 操作栏图标

Posted

技术标签:

【中文标题】连接时不同的 chromecast 操作栏图标【英文标题】:Different chromecast action bar icon when it is connected 【发布时间】:2015-02-13 09:09:18 【问题描述】:

我在我的应用程序中集成了 chromecast。当 chromecast 连接和未连接时,我想要不同的操作栏图标。我创建了一个可绘制的 mr_ic_media_route_holo_light.xml 并在未连接时为 chromecast 图标添加了以下代码。但是什么我需要在连接时添加不同的 chromecast 图标?我尝试创建 xml-'ic_media_route_connecting_holo_light.xmlandmr_ic_media_route_connecting_holo_light.xml 用于在连接 chromecast 时显示图标但它不起作用。它在连接或不连接 chromecast 时显示相同的图标。我正在使用主题Theme.AppCompat.Light。`

mr_ic_media_route_holo_light

  <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false" >

        <item
            android:drawable="@drawable/ic_cast_white_24dp"
            android:duration="500"/>
        <item
            android:drawable="@drawable/ic_cast_white_24dp"
            android:duration="500"/>
        <item
            android:drawable="@drawable/ic_cast_white_24dp"
            android:duration="500"/>
        <item
            android:drawable="@drawable/ic_cast_white_24dp"
            android:duration="500"/>

    </animation-list>

【问题讨论】:

【参考方案1】:

您需要在可绘制对象中包含另一个 xml,并将其命名为 mr_ic_media_route_holo_light.xml。默认内容是:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:state_enabled="true"
            android:drawable="@drawable/mr_ic_media_route_on_holo_light" />
    <item android:state_checkable="true" android:state_enabled="true"
            android:drawable="@drawable/mr_ic_media_route_connecting_holo_light" />
    <item android:state_enabled="true"
            android:drawable="@drawable/mr_ic_media_route_off_holo_light" />
    <item android:drawable="@drawable/mr_ic_media_route_disabled_holo_light" />
</selector>

并更新其内容以指向您想要的内容。请注意,此文件的默认版本(以及引用的可绘制对象)可以在您的 &lt;SDK-DIR&gt;/extras/android/support/v7/mediarouter/res/drawable 中找到。

【讨论】:

但是我写的xml有相同的名字-mr_ic_media_route_holo_light ..请检查有问题的..你要我删除我写的那个xml并用root创建另一个xml元素选择器和上述格式? mr_ic_media_route_holo_light.xml 应该有类似于我提到的内容。然后,您可以创建一个 mr_ic_media_route_connecting_holo_light.xml 以指向“连接”状态应该是什么,并且可以将 mr_ic_media_route_on_holo_light.png、mr_ic_media_route_off_holo_light.png 和 mr_ic_media_route_disabled_holo_light.png 更新为您喜欢的任何内容。基本上,第一个 xml 文件包含对图标所有状态的引用,包括它何时打开/关闭/禁用和连接,然后您可以更改每个引用指向的内容。

以上是关于连接时不同的 chromecast 操作栏图标的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX。为标题栏和操作系统任务栏设置不同的图标

当连接到不同的应用程序/设备时,我可以控制 chromecast 的音量吗?

如何在android中找到系统Action Bar中存在的不同图标的宽度

Chrome Cast 自定义 ActionBar 图标

快速使用标签栏上的不同图标

为啥我的状态栏上的图标不能在不同的模式下改变?