从Android Studio应用程序保存的图像非常小

时间:2016-11-11 21:41:22

标签: android android-activity android-camera

此活动从后置摄像头拍摄3张照片并将其保存在手机内部存储中。以后可以访问它们进行测试。该应用程序实际上工作,但问题是保存的图像非常小,从手机拍摄时它们只有20KB。 (这不是手机的功能,他们使用手机相机从工厂相机应用程序拍摄的手机拍摄正常尺寸的照片。)

我认为这一定是我保存图片的方式,但我无法找到任何其他方法来改变这个问题。我已经包含了相关的activity.java代码,XML文件非常备用,只包含一个picView。

当活动工作时,当物理电话本身移动很多时,还有一个错误似乎会导致活动崩溃。我不知道为什么会这样。我想也许这与手机方向有关,但当我锁定屏幕方向时,如果手机在测试时移动太多,它仍然会崩溃。

1 个答案:

答案 0 :(得分:0)

  

我是一名非常新的开发人员,我已经坚持了几天这个问题

在那些日子的某个地方,你应该读一本关于Android应用程序开发的书,其中有一章介绍用相机拍照。总的来说,使用相机API非常困难,并不是我推荐给一个非常新的开发人员"。

  

但问题是保存的图像非常小,从手机拍摄时只有20KB

您似乎没有设置图片分辨率。你得到的尺寸将取决于硬件,无论它选择什么作为默认值。也许你的测试设备选择了一个小尺寸作为它的默认值。

  

我如何设置图片分辨率?

步骤1:收到Camera个对象后,请使用parameters

上的getParameters()调用结果填写您的Camera字段

步骤2:在getSupportedPictureSizes()对象上调用Camera.Parameters,找出相机硬件支持的图片分辨率("尺寸")

步骤3:根据您想要的任何算法选择其中一种尺寸(例如,按面积最大

步骤4:在setPictureSize()对象上调用Camera.Parameters,提供您从步骤3中选择的大小

步骤5:致电setParameters()上的Camera,传递Camera.Parameters对象

private void configureCamera(Camera camera) {
    Camera.Parameters params = camera.getParameters();
    List<Size> sizes = params.getSupportedPictureSizes();
    Camera.Size size = // insert your algorithm here

    params.setPictureSize(size.width, size.height);

    camera.setParameters(params);
}