Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Cocos2dxGLSurfaceView上添加线性布局_Java_Android_Cocos2d X - Fatal编程技术网

Java 在Cocos2dxGLSurfaceView上添加线性布局

Java 在Cocos2dxGLSurfaceView上添加线性布局,java,android,cocos2d-x,Java,Android,Cocos2d X,我试图在cocos2d-x表面视图的顶部制作一个视频视图。我现在可以使用以下代码片段加载和播放视频: 初始化类时: // Create the LinearLayout that will contain our VideoView _videoLayout = new LinearLayout( _activity ); _videoLayout.setId( VIDEO_VIEW_ID ); _videoLayout.setGravity( Gravity.CENTER ); _videoL

我试图在cocos2d-x表面视图的顶部制作一个
视频视图。我现在可以使用以下代码片段加载和播放视频:

初始化类时:

// Create the LinearLayout that will contain our VideoView
_videoLayout = new LinearLayout( _activity );
_videoLayout.setId( VIDEO_VIEW_ID );
_videoLayout.setGravity( Gravity.CENTER );
_videoLayout.setBackgroundColor( Color.BLACK );
_videoLayout.setOrientation( LinearLayout.VERTICAL );
_videoLayout.bringToFront();

// Add the LinearLayout to the current Activity
_activity = MyGame.getCocosActivity();
_activity.addContentView( _videoLayout, new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT ) );
播放视频时:

// When the video is ready to be played, create a VideoView
VideoView videoView = new VideoView( Cocos2dxActivity.getContext() );
videoView.setLayoutParams( new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT ) );

// Add it to the _videoLayout object
LinearLayout layout = ( LinearLayout ) activity.findViewById( VIDEO_VIEW_ID );
layout.setVisibility( View.VISIBLE );
layout.addView( videoView );

// Play the video
videoView.setVideoURI( Uri.parse( path ) );
videoView.requestFocus();
videoView.start();
上述代码产生以下结果:

  • 播放视频并正确听到声音
  • 视频水平和垂直居中
  • 有时,视频在当前Cocos2d-x视图下播放。再次播放它将使它在它上面播放
  • 视频不是全屏的。它只占屏幕上显示视频的足够空间
我的预期结果是:

  • 视频始终在cocos2d-x视图的顶部播放
  • 视频占据整个屏幕,仍然保持纵横比,但两侧有黑色边框
我似乎不知道如何完成这两项任务。有什么帮助吗?我对Android框架不是很有经验,所以请容忍我


注意:我不想使用XML创建布局。

为什么不想使用XML布局?它们就是为此而设计的,在掌握了它们之后,会让你的生活更轻松

无论如何:在我的例子中,我在RelativeLayout上添加了我的VideoView,并将其CenterHorizontal和CenterVertical参数设置为true。宽度和高度设置为
wrap\u content
。这是在XML中完成的,所以我不能提供Java等价物


还可以尝试在布局上调用
bringToFront()
,以确保视频位于CocosView的顶部。

cocos2d-x库不使用XML布局。我会试着用RelativeLayout来代替它,等我做完后再回来。没错。但这并不能阻止您添加一个:)