- 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/
我想知道 Chromecast 支持哪些网络技术。我知道没有提到的完整列表 here但我实际上想要支持的列表和 performant特点。 它与普通的 Web 开发有什么不同? 是否有硬件加速、Web
我创建了一个 Android 发送器应用程序。它似乎不起作用,我想知道发生了什么,但我无法访问 http://RECEIVER-IP-ADDRESS:9222 。我已注册我的 chromecast 设
我已填写 Google 表单,以便将我的设备列入白名单,并已获得 AppID。 我已按照此处概述的步骤尝试调试设备,但没有成功: https://developers.google.com/cast/
我的自定义 Chromecast 接收器最初是在开发人员控制台中关闭“列表详细信息”的情况下发布的,因此它不会显示在 http://chromecast.com/apps 上。 .现在,我希望它被列出
我想启动 Chromecast 应用程序,但不使用 chrome 扩展程序或 iOS 或 Android。从命令行执行此操作。 我注意到您可以向 chromecast 发送 POST,它会启动一个应用
此 article解释“支持 Chromecast 的网站”的好处: Higher quality: Chromecast-enabled sites can serve high quality c
很高兴终于有时间尝试在我的 chromecast 上进行开发,但唉……似乎甚至无法开始。 我填写了白名单请求,收到了周五确认的电子邮件(正好 catch 周末!),然后我开始查看样本,并根据我发现的一
我尝试使用以下工作正常的代码将元数据从发送方发送到接收方。 const mediaInfo = new chrome.cast.media.MediaInfo(url, type); /* -----
我想制作 Chromecast 设备运行的接收器应用程序的屏幕截图。 我需要让它在设备上运行才能同时显示视频和应用程序。 有没有办法做到这一点 ? 最佳答案 Ali Naddaf 的回答在技术上是正确
有没有办法选择您自己的图像来自定义 Chromecast 屏幕保护程序? 或者我可以编写一个接收器应用程序来替换屏幕保护程序吗? 最佳答案 屏幕保护程序实际上是一个网页 ( https://clien
我正在尝试创建一个设备,让我可以指定 youtube 视频,以便从任意客户端通过 chromecast 播放。就我而言,客户端是在 Arduino 上运行的 CURL。 我很早就撞墙了。我看到 SDK
目前,您可以使用 Google 智能助理控制您的 chromecast 屏幕,例如询问 Google Home“OK Google,在客厅屏幕上显示来自 YouTube 的关于食物的视频”。但是你可以
我将 chromecast 支持集成到我的 Android 应用程序中。已发布(将状态更改为已发布)。然后我改为"is"部分 LISTING DETAILS Allow users to discov
有什么方法可以使用标准(桌面)Java 连接到 ChromeCast。我正在寻找一种自动化测试的方法,并希望我们的 CC:s 能够自动播放视频。 到目前为止我已经找到了这个项目: https://gi
我正在尝试使用 chrome 测试一些 chromecast 示例,但在我的 APP-ID 的可用接收器列表中看不到 chromecast。 这是我的情况, 我的 chromecast 设备已列入白名
文档说 Chromecast 使用的是“缩小版”的 Chrome 浏览器。是否有受支持的 HTML5 标记和受支持的 JavaScript DOM 操作的列表? 我喜欢用 HTML5 为 Chrome
使用 Host.processMetadata() 获取视频流中的 ID3 标签。它说这是一个 Uint8Array 但我不知道如何正确解码它。我在用: new TextDecoder("utf-8"
在播放音乐时,我尝试了几种不同的 css 动画来在屏幕上上下移动大图像。我没有发现任何导致平滑过渡的速度、距离转换等变化。 最佳答案 如果您查看 Chromecast Chrome 调试器的“时间轴”
我查看了 git 上的 chromecast 示例并查看了较旧的 v7 mediarouter examples其中包括“播放或排队”行为。从 chromecast 接口(interface)不清楚,
我在 Chrome Incognito 中运行 Chromecast 发件人时出错,或者如果未安装 Chromecast 扩展程序: Failed to load resource: net::ERR
我是一名优秀的程序员,十分优秀!