我正在开发一个Chrome演员应用程序并且卡在一个基本步骤上。我正在关注互联网上有关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;
}
和R.id.media_route_menu_item的XML
<?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设备选项。我需要将菜单元素移出操作栏并制作一个同样的Button。问题是我不能做像
这样的事情<Button
...
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
/>
它将无法工作,因为actionProviderClass已准备好使用菜单项。我会感谢任何想法如何使用按钮来解决这个问题。
答案 0 :(得分:2)
您可以像这样使用MediaRouteButton:
XML
<android.support.v7.app.MediaRouteButton
android:id="@+id/media_route_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
爪哇
MediaRouteButton mediaRouteButton = MediaRouteButton) findViewById(R.id.media_route_button);
mediaRouteButton.setRouteSelector(your_selector);
答案 1 :(得分:0)
在我们的GitHub存储库中查看此sample,我们将展示三种不同的方法。如果您在完成这些操作后仍有疑问,请回过头来看看我们可以提供哪些帮助。
答案 2 :(得分:0)
只是为了完成席尔瓦的答案,如果您使用Tollbar,这就是您在活动中所需要的:
MediaRouteButton mediaRouteButton = (MediaRouteButton) mToolbar.findViewById(R.id.mediaRouteMenuItem);
// mediaRouteButton.setRouteSelector(MediaRouteSelector.EMPTY);
CastButtonFactory.setUpMediaRouteButton(this, mediaRouteButton);