- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我似乎无法让 MediaRoute 按钮在我的实体 ActionBar 中显示为“白色”。
我的问题是:我们如何在不更改可绘制对象名称的情况下将 MediaRoute 按钮设置为浅色或深色?
在这里查看类似的问题:How do I change the style of the MediaRouteButton in the ActionBar?公认的解决方案只是使用您自己的一组 MediaRoute 可绘制对象,并交换名称 light<>dark。
对于我的应用程序,我有 3 种不同的样式:light-ActionBar、dark-ActionBar 和 light solid-ActionBar。我不能简单地交换可绘制名称,因为我需要深色和浅色才能正确显示前两个主题。为了正确显示实心操作栏内容,我正在做这样的事情:(以下示例在这里:http://www.jayway.com/2014/06/02/android-theming-the-actionbar/)
//Parent Light.DarkActionBar should give white ActionBar icons
<style name="AppTheme.Solid.Light" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/Widget.Solid.ActionBar</item>
<item name="android:actionBarWidgetTheme">@style/ActionBarWidget</item>
.
.
//Make the ActionBar solid, but need to use 'inverse' to keep the icons/text white
<style name="Widget.Solid.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
.
.
//**** THE ISSUE IS CAUSED BY USING THE FOLLOWING
//Make the ActionBar dropdown spinner items use the correct (white) theme as well
<style name="ActionBarWidget" parent="Theme.AppCompat.Light.DarkActionBar">
.
.
ActionBarWidget 主题是确保 ActionBar 溢出图标下拉菜单背景显示为白色而不是黑色所必需的。但是,它会导致 MediaRoute 按钮更改为它的深色主题可绘制对象,这不适合。
我试过覆盖 Widget.MediaRouter.MediaRouteButton
和强制<item name="externalRouteEnabledDrawable">@drawable/mr_ic_media_route_holo_dark</item>
,但我所做的一切都无济于事。
我们如何在不更改可绘制对象名称的情况下将 MediaRoute 按钮设置为浅色或深色?是否有一种简单的样式可以覆盖我们可以设置自己的 MediaRoute 可绘制对象的位置?
最佳答案
尝试以下操作:
菜单.xml:
<item
android:id="@+id/media_route_menu_item"
android:title="@string/media_route_menu_title"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:actionViewClass="com.???.MediaRouteButtonHoloDark"
app:showAsAction="always" />
MediaRouteButtonHoloDark:
public class MediaRouteButtonHoloDark extends MediaRouteButton {
public MediaRouteButtonHoloDark( Context context ) {
this( context, null );
}
public MediaRouteButtonHoloDark( Context context, AttributeSet attrs ) {
this( context, attrs, android.support.v7.mediarouter.R.attr.mediaRouteButtonStyle );
}
public MediaRouteButtonHoloDark( Context context, AttributeSet attrs, int defStyleAttr ) {
super( getThemedContext(context), attrs, defStyleAttr);
}
private static Context getThemedContext( Context context ) {
context = new ContextThemeWrapper( context, android.support.v7.appcompat.R.style.Theme_AppCompat );
return new ContextThemeWrapper( context, android.support.v7.mediarouter.R.style.Theme_MediaRouter );
}
}
在你的代码中的某处:
...
MenuItem mediaRouteMenuItem = menu.findItem( R.id.media_route_menu_item );
MediaRouteButton mediaRouteButton = (MediaRouteButton) MenuItemCompat.getActionView( mediaRouteMenuItem );
mediaRouteButton.setRouteSelector( mMediaRouteSelector );
...
关于android - 样式化 ChromeCast MediaRoute 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24688598/
我想在转换时实现在 Youtube 应用程序中看到的音量变化,就像应用程序在后台或锁定屏幕上一样 Like this private void createSession() { Compon
我们已经为 Chromecast 应用程序创建了锁屏控件,但这些控件不会显示在锁屏上。我们正在使用 RemoteControlClient 来实现锁屏小部件,但我们不知道为什么它不起作用。 最佳答案
媒体路由器支持库找不到使用 MediaControlIntent.CATEGORY_LIVE_VIDEO 的辅助显示器的路由如 documentation 中所述. 我是否遗漏了 MediaRoute
我正在使用 mediarouter-v7 v23.1.1 来显示 chromecast/media router 选择器对话框。现在我尝试设计这个东西的样式 - 虽然我可以用这个改变背景颜色和列表项文
我想通过 MediaRouter 类将音频文件从我的 android 设备流式传输到另一个设备。据我了解,我需要 mediarouter.addCallback(MediaRouter.ROUTE_T
我正在开发一款集成了 Cast 的应用。我可以设置转换按钮,甚至可以将我的应用转换到 ChromeCast。但是,当我将 MediaRouter 作为依赖项包含在内时, float 操作按钮的样式很奇
我使用 v7 支持库 MediaRouter 在手机扬声器和蓝牙设备之间切换路由。 有时它会很奇怪,例如,当我关闭蓝牙时,相应的路由似乎被删除(播放切换到扬声器),但我的应用程序没有收到任何回调。此外
我似乎无法让 MediaRoute 按钮在我的实体 ActionBar 中显示为“白色”。 我的问题是:我们如何在不更改可绘制对象名称的情况下将 MediaRoute 按钮设置为浅色或深色? 在这里查
我正在尝试将 Chromecast 图标放入我的菜单项中。我在菜单布局中定义了以下内容。 在我的 onCreateOptionsMenu() 方法中,我按照官方 chromecast 教程中的建议执
我正在尝试在 ChromeCast 应用程序的上下文中使用 ActionBar 设置搜索界面(使用来自 CastCompanionLibrary 和 VideoBrowserActivity git
我正在 Flutter 中开发一个应用程序,该应用程序应该在 POS with two screens 上运行。它基本上是一个通过 HDMI 电缆连接到另一个屏幕的平板电脑。 我的问题是,无论我在屏幕
发现使用 Android MediaRouter API 的 Chromecast 设备在最新的 mediarouter 支持库(版本 19)和 google play 服务版本 4.2.43 中无法
精简版 我在实例化 android.support.v7.app.MediaRouteButton 对象时遇到未处理的异常。我得到: NoClassDefFoundError: android.sup
我正在构建一个使用支持库的应用程序。 我的项目没有编译错误,但是当我运行时,我在 logcat 中看到这条消息: java.lang.NoClassDefFoundError: android.sup
以下是 android-support-v7-mediarouter 的 styles.xml 文件。 56dp 48dp 0dp
我正在尝试在 Xamarin Android 中实现一个 MediaRouteButton 以查找该区域的 ChromeCast 设备,它使用 android 支持库(NuGeT 包)我下载了一个示例
我正在尝试编译一个开源项目(从github下载), build.gradle (Module app) image 我还附上了我的SDK 管理器图片, SDK Manager image 我在谷歌上搜
使用 Jetbrains Rider,我创建了一个新的 Xamarin 应用程序。因为 Rider 使用旧版本 (4.4.0.991640) 创建 Xamarin 应用程序,所以我将 Xamarin
我可以按照 Google 在此处提供的教程找到 chromecast:https://developers.google.com/cast/cast_2nd-screen_app_tutorial 然
我是一名优秀的程序员,十分优秀!