繁体   English   中英

如何将Android默认相机应用设置为仅纵向

[英]How to set Android default camera app for portrait orientation only

在我的android应用程序中,我为此使用Android default camera捕获照片,下面使用了以下代码。捕获照片后,我已将Image显示为全屏模式下的另一个活动。如果以portrait模式捕获了图像,则可以设置整个图像进入全屏模式。 显示完图像后,它可以执行我的操作。但是,如果我从landscape捕获照片,则所拍摄的图像将在屏幕上拉伸。 因此我只想在人像模式下不横向拍摄照片。 所以我怎么只能将相机应用锁定为人像。

String fileName = "Camera_Example.jpg";                
    ContentValues values = new ContentValues();                
    values.put(MediaStore.Images.Media.TITLE, fileName);                
    values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");                
    imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);                       
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
    intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION,ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);   
    startActivityForResult(intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

AndroidManifest.xml

 <activity
     android:name=".TestActivity"
     android:screenOrientation="portrait"
     android:configChanges="orientation"
     android:theme="@android:style/Theme.NoTitleBar" >
     </activity>

人像拍摄的照片 在此处输入图片说明

全屏人像拍摄的照片 在此处输入图片说明

风景照 在此处输入图片说明

全屏拍摄的风景照片 在此处输入图片说明

如何锁定仅用于人像的相机应用程序

你不知道 您没有编写相机应用程序,因为有成百上千个相机应用程序。 由相机应用程序和用户来决定方向。

除了:

  • 在许多设备上,纵向模式下您将遇到相同的问题

  • 您的风景照片也似乎被拉长了,尽管没有那么剧烈

但是,如果我从风景中捕获照片,则所拍摄的图像将在屏幕上拉伸

您有一个,也许还有两个问题:

  1. 您没有考虑照片的方向,因此正在加载风景照片,就像它是人像一样。

  2. 您的ImageView或其父级可能配置错误。 如果要保持照片的长宽比, 并且希望ImageView填充某个区域,则ImageView需要具有相同的长宽比。

如果您真的只想以人像模式拍照,则除了解决上面提到的问题之外,您还需要自己使用android.hardware.Camera ,而不是启动第三方相机应用程序。

尝试使用以下代码旋转相机:

@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
    camera = Camera.open();
    camera.setDisplayOrientation(90); // camera  portrait oriantation
    try {
        camera.setPreviewDisplay(holder);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM