我有一个对话框活动,这是我在清单文件中配置它的方式:
<activity
android:name=".VideoDialogPreviewAct"
android:configChanges="orientation"
android:label="@string/title_activity_video_dialog_preview"
android:parentActivityName=".VideoResultsScreenAct"
android:theme="@android:style/Theme.Dialog" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.MES.MySperm.VideoResultsScreenAct" />
</activity>
在活动中我只有一个SurfaceView:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
tools:context=".VideoDialogPreviewAct">
<SurfaceView
android:id="@+id/MainSurface"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
我想用这个表面播放视频, 这是我的主要Java代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_video_dialog_preview);
overridePendingTransition(0, 0);
mPreview = (SurfaceView) findViewById(R.id.MainSurface);
mPreview.setOnTouchListener(onTouchListner);
mPreview.setZOrderOnTop(true);
Create_Surface();
}
private void Create_Surface()
{
holder = mPreview.getHolder();
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
holder.setFixedSize(getWindow().getWindowManager().getDefaultDisplay().getWidth(), 0);
//holder.setFixedSize(100, 100);
mMediaPlayer = new MediaPlayer();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Play_Video();
}
我的问题是&#34; surfaceCreated&#34;从未调用的方法。
如果我将活动样式更改为全屏模式,那么一切正常。
有人熟悉这个问题吗?
感谢您的帮助。
答案 0 :(得分:0)
我遇到过类似的问题。对我来说,这是因为视图大小设置为0,因此从未创建表面。我通过设置一个特定的大小来检查这一点,并且突然调用了回调。 (如果View在屏幕外布局,显然也是如此。)
因此,您的主题中可能存在影响视图大小或位置的内容,导致其无法显示。