【问题标题】:Image Saved From Android Studio Application is Very Small从 Android Studio 应用程序保存的图像非常小
【发布时间】:2016-11-11 21:41:22
【问题描述】:

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

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

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

【问题讨论】:

  • "但问题是保存的图像非常小,从手机拍摄时只有 20KB" -- 因为您似乎没有在任何地方设置图片分辨率,大概是您正在获得一些默认分辨率。
  • 如何设置图片分辨率?

标签: android android-activity android-camera


【解决方案1】:

我是一个非常新的开发人员,我已经被这个问题困扰了好几天

在那些日子里,你应该读过一本关于 Android 应用程序开发的书,其中有一章是关于用相机拍照的。总的来说,使用相机 API 非常困难,我不建议“非常新的开发人员”使用。

但问题是保存的图片非常小,用手机拍的只有20KB左右

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

如何设置图片分辨率?

步骤#1:获得Camera 对象后,使用在Camera 上调用getParameters() 的结果填写parameters 字段

第 2 步:在 Camera.Parameters 对象上调用 getSupportedPictureSizes(),以了解相机硬件支持的图片分辨率(“尺寸”)

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

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

第 5 步:在 Camera 上调用 setParameters(),传入您的 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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多