我只是在开发一个Chrome Cast应用程序,并陷入了一个基本步骤。我正在关注互联网上有关Chrome Cast的GUI的一些示例。应该启动铸件的按钮(首先选择设备)通常位于动作栏中。这就是添加的方式:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main, menu);
mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);
return true;
}
和xml,用于r.id.media_route_menu_item
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >
<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"/>
</menu>
您可以在第二部分中看到:
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
将启动Chrome Cast Devices选择。我需要将菜单元素从动作栏中移出,然后制作一个执行此操作的按钮。问题是我不能做
之类的事情<Button
...
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
/>
ActionProviderClass准备使用菜单项,因此它行不通。我会感谢如何使用按钮解决该问题的任何想法。
您可以像这样使用Mediaroutebutton:
XML
<android.support.v7.app.MediaRouteButton
android:id="@+id/media_route_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
java
MediaRouteButton mediaRouteButton = MediaRouteButton) findViewById(R.id.media_route_button);
mediaRouteButton.setRouteSelector(your_selector);
只是为了完成席尔瓦的回答,这是您使用Tollbar的活动所需的内容:
MediaRouteButton mediaRouteButton = (MediaRouteButton) mToolbar.findViewById(R.id.mediaRouteMenuItem);
// mediaRouteButton.setRouteSelector(MediaRouteSelector.EMPTY);
CastButtonFactory.setUpMediaRouteButton(this, mediaRouteButton);
在我们的github存储库上查看此示例,我们显示了三种不同的方法。如果您在经历它们之后仍然有疑问,请回来,我们会看到我们可以做些什么来提供帮助。