2013-10-06 39 views
0

即時消息閱讀android文檔,我不能把事情綁在一起。 在下面的例子中,一些方法被稱爲是不存在getAlbumName()和getAlbumDir()捕獲照片Android

http://developer.android.com/training/camera/photobasics.html

首先,我應該在哪裏把這段代碼:

storageDir = new File (
    Environment.getExternalStorageDirectory() 
     + PICTURES_DIR 
     + getAlbumName() 
); 

二,什麼是getAlbumName()方法由?

然後在這裏:

private File createImageFile() throws IOException { 
    // Create an image file name 
    String timeStamp = 
     new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_"; 
    File image = File.createTempFile(
     imageFileName, 
     JPEG_FILE_SUFFIX, 
     getAlbumDir() 
    ); 
    mCurrentPhotoPath = image.getAbsolutePath(); 
    return image; 
} 

getAlbumDir() - 這是哪裏來的?

回答

2

getAlbumName()是圖片所在的專輯的名稱,它需要完成文件到圖片的File f = new File(path to file)這是由你有效地選擇。你可以使用:

/* Photo album for this application */ 
private String getAlbumName() { 
    return getString(R.string.album_name); 
} 

其中R.string.album_name由你

storageDir = new File (
Environment.getExternalStorageDirectory() 
    + PICTURES_DIR 
    + getAlbumName() 
); 

選擇應該是一個功能getAlbumDir()這就是所謂的代碼本教程中的下位...

File image = File.createTempFile(
    imageFileName, 
    JPEG_FILE_SUFFIX, 
    getAlbumDir() 
); 
+0

我剛剛通過這個谷歌示例中的代碼,我很困惑與這個問題有關的一件事。 storageDir()是mAlbumStorageDirFactory的函數,其中mAlbumStorageDirFactory由您正在使用的SDK版本確定。在代碼中,我們可以看到:\t \t如果(Build.VERSION.SDK_INT> = Build.VERSION_CODES.FROYO){ \t \t \t mAlbumStorageDirFactory =新FroyoAlbumDirFactory(); \t \t} else { \t \t \t mAlbumStorageDirFactory = new BaseAlbumDirFactory();我不同意這個邏輯,因爲如果我們當前的SDK大於FROYO,我們應該使用BaseAlbumDirFactory()。 – Simon

+0

目前,我們正在使用FroyoAlbumDirFactory(),這是沒有意義的。 – Simon