我是 java 和 android 开发的新手。我正在 frameLayout 窗口中开发一个带有相机视图的应用程序。我的应用程序设计为纵向,但窗口为横向<如图所示>。正如您所熟悉的那样,默认相机视图是横向的,所以我执行 camera.setDisplayOrientation (90); 旋转它。
我的问题是,当图像在横向窗口下以纵向视图旋转时,它会变形(捏合)。any1 可以帮我解决这个问题吗,any1 可以为我提供一个解决方案来修剪边界以达到所需的比例。
!我是stackoverflow的新用户,所以不允许上传图片,否则我可以告诉你。
___________________________________________
|____________Notification bar_______________|
| |
| My Application |
|___________________________________________|
| |
| |
| |
| |
| |
| |
| |
| camera View |
| ____________________ |
| | | |
| | | |
| | | |
| | | |
| | | |
| |____________________| |
| |
| |
| |
| |
| |
| |
| |
| |
|___________________________________________|
代码:
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
if(preview_running){
camera.stopPreview();
preview_running = false;
}
Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPreviewSizes();
int mFrameWidth = width;
int mFrameHeight = height;
{
double minDiff = Double.MAX_VALUE;
for (Camera.Size size : sizes)
{
if (Math.abs(size.height - height) < minDiff)
{
mFrameWidth = size.width;
mFrameHeight = size.height;
minDiff = Math.abs(size.height - height);
}
}
}
if( (width*height) != 0){
parameters.setPreviewSize(mFrameHeight, mFrameWidth);
System.out.println("TEST 1");
}
camera.setDisplayOrientation(90);
camera.setParameters(parameters);
camera.startPreview();
preview_running = true;
}