gpt4 book ai didi

View 中的 Android 摄像头带有按钮和文本

转载 作者:行者123 更新时间:2023-11-29 18:15:19 26 4
gpt4 key购买 nike

我在我的 View 中实现了一个摄像头,就像在 API 演示中一样。但它只适用于横向模式。但这对我不利,因为我主要想在人像模式下使用它。所以按钮等等看起来很糟糕。如何获得一个 SurfaceView,它显示 CameraPreview 并在 protrait 模式下一起工作?

我认为没有必要发布代码,因为我只是使用了 API 演示中的代码!

非常感谢!

最佳答案

如果您没有在 AndroidManifest.xml 文件中指定屏幕方向,则默认显示方向是横向位置,每次旋转手机时,android 都会更改获取的图像,以保持图像与手机对齐。因此,您有两个选择:

1.1。在 AndroidManifest.xml 文件中指定屏幕方向并设置正确的屏幕方向:

AndroidManifest.xml:

        <activity
android:label="@string/app_name"
android:name=".CameraPreview"
android:screenOrientation="portrait" >

CameraPreview.java:

       mCamera.setPreviewDisplay(holder);
mCamera.setDisplayOrientation(90);

AndroidManifest.xml:

        <activity
android:label="@string/app_name"
android:name=".CameraPreview"
android:screenOrientation="landscape" >

CameraPreview.java:

       mCamera.setPreviewDisplay(holder);
mCamera.setDisplayOrientation(0);

1.2。不要在 AndroidManifest.xml 文件中指定屏幕方向,并在每次屏幕旋转时设置正确的屏幕方向:

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

int rotation = ((Activity)mCtx).getWindowManager().getDefaultDisplay().getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 90; break;
case Surface.ROTATION_90: degrees = 0; break;
case Surface.ROTATION_180: degrees = 270; break;
case Surface.ROTATION_270: degrees = 180; break;
}

mCamera.setDisplayOrientation(degrees);

Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewSize(w, h);
mCamera.setParameters(parameters);
mCamera.startPreview();
}

但是,既然你已经设计了带有按钮等的纵向布局,我认为最好的选择是第一个。

希望这对您有所帮助,并致以最诚挚的问候。

关于 View 中的 Android 摄像头带有按钮和文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com