如何在 cast sdk v3 中为 cast 按钮添加自定义样式?

How to add custom style for cast button in cast sdk v3?

我在我的应用程序中集成了投射,投射按钮的默认颜色是黑色,但我更喜欢白色。

所以我有 2 个问题:

  1. 默认采用什么样式?
  2. 如何更改图标的样式或颜色?

我正在使用 cast sdk v3。

我阅读了其他相关帖子,但它们都与 sdk v2 相关。

这是我在 google 示例中的菜单项布局:

<item
        android:id="@+id/media_route_menu_item"
        android:title="@string/media_route_menu_title"
        app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
        app:showAsAction="always"/>

这是创建按钮的菜单代码:

   @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        getMenuInflater().inflate(R.menu.menu_podcast, menu);

        mMediaRouteItem =
                CastButtonFactory.setUpMediaRouteButton(getApplicationContext(),
                        menu,
                        R.id.media_route_menu_item);

        return true;
    }

尝试在 Android 中检查 Customize App guide 的 Castv3。您可以自定义颜色、覆盖样式、控制器样式等。

自定义主题

IntroductoryOverlay class 支持您的应用可以在自定义主题中覆盖的各种样式属性。此示例展示了如何覆盖覆盖小部件上的按钮和标题的文本外观:

<style name="CustomCastIntroOverlay" parent="CastIntroOverlay">
<item name="castButtonTextAppearance">@style/TextAppearance.CustomCastIntroOverlay.Button</item>
<item name="castTitleTextAppearance">@style/TextAppearance.CustomCastIntroOverlay.Title</item>
</style>
<style name="TextAppearance.CustomCastIntroOverlay.Button" parent="android:style/TextAppearance">
<item name="android:textColor">#FFFFFF</item>
</style>
<style name="TextAppearance.CustomCastIntroOverlay.Title" parent="android:style/TextAppearance.Large">
<item name="android:textColor">#FFFFFF</item>
</style>

解决方案很简单,只需更改 activity 主题以扩展 Theme.AppCompat 而不是 Theme.AppCompat.Light.DarkActionBar