首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Android默认相机应用程序设置为只用于纵向定向

如何将Android默认相机应用程序设置为只用于纵向定向
EN

Stack Overflow用户
提问于 2014-08-14 14:27:00
回答 2查看 5.5K关注 0票数 0

在我的安卓应用程序中,为了这个目的,我使用Android default camera捕捉照片,我在下面使用code.after捕获了一张照片,我展示了图像在全屏mode.if中的另一个活动,我在portrait模式下捕获了图像,我可以将整个图像设置为全屏模式。它显示得很好,在显示了一幅图像之后,如果我从landscape上捕捉到一张照片,所拍摄的图像将在屏幕上拉伸,我就可以执行我的landscape。所以我想用肖像模式捕捉照片,而不是在风景中。那么,我如何才能锁定相机应用程序的肖像。

代码语言:javascript
复制
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

代码语言:javascript
复制
 <activity
     android:name=".TestActivity"
     android:screenOrientation="portrait"
     android:configChanges="orientation"
     android:theme="@android:style/Theme.NoTitleBar" >
     </activity>

肖像画照片

全屏肖像画

景观拍摄照片

景观拍摄全屏照片

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-14 14:44:54

我怎样才能锁定相机应用程序只用于肖像

你没有。你没有编写相机应用程序,因为有数百个,也许是数千个相机应用程序。这取决于相机应用程序和用户处理方向。

此外:

  • 在许多设备上,您将在纵向模式中遇到相同的问题。
  • 你的风景照片似乎也被拉伸了,虽然没有那么剧烈。

但是如果我从风景中捕捉到一张照片,所拍摄的图像就会在屏幕上展开。

你有一个问题,或者两个问题:

  1. 您没有考虑到照片的方向,所以您正在加载一个景观照片,就好像它是肖像。
  2. 您的ImageView,或者它的父程序,可能配置错误。如果您想要保持照片的高宽比,并且希望ImageView填充某个区域,那么ImageView需要有相同的高宽比。

如果你真的只想在肖像模式下拍照,除了解决我上面提到的问题,你还需要自己使用android.hardware.Camera,而不是发布第三方相机应用程序。

票数 2
EN

Stack Overflow用户

发布于 2017-03-14 13:06:52

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

代码语言:javascript
复制
@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();
    }
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25310573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档