Android 调整对话框大小时不触发surfaceChanged回调
我有一个简单的摄像头应用程序,我在alertdialog中使用surfaceview来显示取景器。我注意到,如果通过更改alertdialog的大小来手动调整取景器的大小,则在方向更改时不会触发surfaceChanged()回调。如果我对setlayout行进行注释,它将正常启动。我是否缺少标志或配置设置 谢谢你的意见 代码:Android 调整对话框大小时不触发surfaceChanged回调,android,android-view,android-alertdialog,Android,Android View,Android Alertdialog,我有一个简单的摄像头应用程序,我在alertdialog中使用surfaceview来显示取景器。我注意到,如果通过更改alertdialog的大小来手动调整取景器的大小,则在方向更改时不会触发surfaceChanged()回调。如果我对setlayout行进行注释,它将正常启动。我是否缺少标志或配置设置 谢谢你的意见 代码: mBuilder = new AlertDialog.Builder(mContext); mBuilder.setTitle("test dialog"); mAle
mBuilder = new AlertDialog.Builder(mContext);
mBuilder.setTitle("test dialog");
mAlertDialog = mBuilder.create();
mFrameLayout = new FrameLayout(mContext);
mSurfaceView = new SurfaceView(mContext);
mFrameLayout.addView(mSurfaceView, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
mAlertDialog.setView(mFrameLayout, 0, 0, 0, 0);
mSurfaceView.getHolder().addCallback(mSHcallCallback);
mAlertDialog.show();
mAlertDialog.getWindow().setLayout(200, 600);
这是在活动类之外定义的
SurfaceHolder.Callback mSHcallCallback = new SurfaceHolder.Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Log.d(TAG, "surface changed h:"+height+", w:"+width);
// TODO Auto-generated method stub
}
};
你可以在下面的链接中找到答案