Android 将相机图片尺寸与手机屏幕尺寸相匹配
我有一个应用程序可以拍摄照片并将 jpeg 格式保存在 SD 卡上。当我加载 jpeg 时,它比屏幕大得多。如何将图片显示为与相机预览中的屏幕大小相同的大小?我已经编写了代码来获取硬件的屏幕尺寸(以像素为单位),并且我已经注销了相机的可用图片尺寸,例如
public void surfaceCreated(SurfaceHolder holder) {
Log.e(TAG, "surfaceCreated");
mCamera = Camera.open();
Parameters params = mCamera.getParameters();
List sizes = params.getSupportedPictureSizes();
int w = getResources().getDisplayMetrics().widthPixels;
int h = getResources().getDisplayMetrics().heightPixels;
Log.e(TAG, "*********** hardware screen height size = "+ h);
Log.e(TAG, "*********** hardware screen width size = "+ w);
for(int i = 0; i<sizes.size();i++){
int height;
int width;
Camera.Size cs = (Size) sizes.get(i);
height = cs.height;
width = cs.width;
Log.e(TAG, "*********** camera picsize = "+ height +" X " +width);
}
}
输出:
07-18 20:59:37.567: ERROR/CameraTest(4394): *********** hardware screen height size = 480
07-18 20:59:37.567: ERROR/CameraTest(4394): *********** hardware screen width size = 320
07-18 20:59:37.572: ERROR/CameraTest(4394): *********** camera picsize = 1536 X 2048
07-18 20:59:37.572: ERROR/CameraTest(4394): *********** camera picsize = 1200 X 1600
07-18 20:59:37.577: ERROR/CameraTest(4394): *********** camera picsize = 768 X 1024
I've an app that takes a camera shot and saves the jpeg on the sdcard. When i load the jpeg it is much larger than the screen. how can i display the picture to the same size as the screen as it looked in the camera preview? i've written code to get the hardware's screensize in pixels and i've logged out the camera's available picture sizes eg
public void surfaceCreated(SurfaceHolder holder) {
Log.e(TAG, "surfaceCreated");
mCamera = Camera.open();
Parameters params = mCamera.getParameters();
List sizes = params.getSupportedPictureSizes();
int w = getResources().getDisplayMetrics().widthPixels;
int h = getResources().getDisplayMetrics().heightPixels;
Log.e(TAG, "*********** hardware screen height size = "+ h);
Log.e(TAG, "*********** hardware screen width size = "+ w);
for(int i = 0; i<sizes.size();i++){
int height;
int width;
Camera.Size cs = (Size) sizes.get(i);
height = cs.height;
width = cs.width;
Log.e(TAG, "*********** camera picsize = "+ height +" X " +width);
}
}
output:
07-18 20:59:37.567: ERROR/CameraTest(4394): *********** hardware screen height size = 480
07-18 20:59:37.567: ERROR/CameraTest(4394): *********** hardware screen width size = 320
07-18 20:59:37.572: ERROR/CameraTest(4394): *********** camera picsize = 1536 X 2048
07-18 20:59:37.572: ERROR/CameraTest(4394): *********** camera picsize = 1200 X 1600
07-18 20:59:37.577: ERROR/CameraTest(4394): *********** camera picsize = 768 X 1024
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已解决:
solved: