我有一个使用LinearLayout作为主要布局的Android应用程序,其中包含一个由相机预览填充的SurfaceView。
在此情况下,我用另一个LinearLayout填充了三个按钮和一个自定义TextView。 我希望摄像头预览始终保持横向方向,并且覆盖层根据设备方向进行更改。
我尝试在清单文件中为活动设置
任何关于如何实现这一点的想法将不胜感激!
我尝试在清单文件中为活动设置
android:screenOrientation="landscape"
,但这样做也会使填充的布局始终固定不变,而不设置android:screenOrientation
属性则摄像头预览旋转,减慢了应用程序速度并显示出奇怪的预览形态。以下是布局的相关代码:private void setupLayout()
{
setContentView(R.layout.main);
getWindow().setFormat(PixelFormat.UNKNOWN);
// Release camera if owned by someone else
if (camera != null)
releaseCamera();
surfaceView = (SurfaceView) findViewById(R.id.camerapreview);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
controlInflater = LayoutInflater.from(getBaseContext());
View viewControl = controlInflater.inflate(R.layout.control, null);
LayoutParams layoutParamsControl = new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
this.addContentView(viewControl, layoutParamsControl);
buttonGetCollectingData = (Button) findViewById(R.id.getcolldata);
buttonGetCollectingData.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View arg0)
{
...
}
});
btnBackHome = (Button) findViewById(R.id.btnBackHome);
btnBackHome.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View arg0)
{
...
}
});
autoFitTextViewMainMsg = (AutoFitTextView) findViewById(R.id.autoFitTextViewMainMsg);
buttonTakePicture.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View arg0)
{
...
}
});
}
任何关于如何实现这一点的想法将不胜感激!