在我的安卓应用程序中,为了这个目的,我使用Android default camera捕捉照片,我在下面使用code.after捕获了一张照片,我展示了图像在全屏mode.if中的另一个活动,我在portrait模式下捕获了图像,我可以将整个图像设置为全屏模式。它显示得很好,在显示了一幅图像之后,如果我从landscape上捕捉到一张照片,所拍摄的图像将在屏幕上拉伸,我就可以执行我的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>肖像画照片

全屏肖像画

景观拍摄照片

景观拍摄全屏照片

发布于 2014-08-14 14:44:54
我怎样才能锁定相机应用程序只用于肖像
你没有。你没有编写相机应用程序,因为有数百个,也许是数千个相机应用程序。这取决于相机应用程序和用户处理方向。
此外:
但是如果我从风景中捕捉到一张照片,所拍摄的图像就会在屏幕上展开。
你有一个问题,或者两个问题:
ImageView,或者它的父程序,可能配置错误。如果您想要保持照片的高宽比,并且希望ImageView填充某个区域,那么ImageView需要有相同的高宽比。如果你真的只想在肖像模式下拍照,除了解决我上面提到的问题,你还需要自己使用android.hardware.Camera,而不是发布第三方相机应用程序。
发布于 2017-03-14 13:06:52
尝试使用以下代码旋转摄像机:
@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();
}
}https://stackoverflow.com/questions/25310573
复制相似问题