我正在嘗試計算可以使用自定義相機拍攝的照片的剩餘數量,並將該數值顯示給用戶。我試着用下面的代碼:如何計算自定義相機中的其餘照片計數android
private void numberOfPhotosAvailable() {
long photosAvailable = 0;
StatFs stat = new StatFs(Environment.getExternalStorageDirectory().getPath());
resolution=getResolution();
long bytesPerPhoto=resolution/1048576;
long bytesAvailable = (long) stat.getAvailableBlocksLong() * (long) stat.getBlockSizeLong();
long megAvailable = bytesAvailable/1048576;
System.out.println("Megs :" + megAvailable);
photosAvailable = megAvailable/bytesPerPhoto;
tvAvailablePhotos.setText("" + photosAvailable);
}
獲得分辨率的方法。
public long getResolution(){
long resolution=0;
Camera.Parameters params=mCamera.getParameters();
List<Camera.Size> sizes = params.getSupportedPictureSizes();
Camera.Size size = sizes.get(0);
int width=size.width;
int height=size.height;
resolution=width*height;
return resolution;
}
問題: 有在手機的攝像頭顯示的數量相差很多,並且在我的應用中顯示計數。
那麼這樣做的正確方法是什麼?
注意:我只會捕捉最高質量的圖像。所以我只是按照一個分辨率來計算。
爲什麼你會認爲照片將是7MB?這些是壓縮文件。取決於實際捕獲的數據,它可能遠不及或更多。假設您沒有按照應用程序的最大存儲限制達到特定供應商。而且您假設所有相機都以相同的分辨率拍攝照片,但事實並非如此。 –
這就是爲什麼我要問做什麼計算的正確方法。我知道上面的代碼不適用於其他設備。 –
@GabeSechan現在檢查。我現在使用動態方法進行計算。 –