[英]Android matching the camera picture size to a phone's screen size
我有一個應用程序可以拍攝照片並將 jpeg 保存在 sdcard 上。 當我加載 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);
}
}
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
解決了:
public void surfaceCreated(SurfaceHolder holder) {
Log.e(TAG, "surfaceCreated");
mCamera = Camera.open();
Parameters params = mCamera.getParameters();
int w = getResources().getDisplayMetrics().widthPixels;
int h = getResources().getDisplayMetrics().heightPixels;
try{
params.setPictureSize(h, w);
mCamera.setParameters(params);
} catch (Exception e) {
e.printStackTrace();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.