2011-02-07 46 views
0

這聽起來像一個問題,像我這樣的初學者只會有...這是我的代碼...Android如何用自己獨特的圖像名稱保存圖像?

private void saveAvatar(Bitmap avatar) { 
    String strAvatarFilename = Id + ".jpg"; 
    try { 
     avatar.compress(CompressFormat.JPEG, 100, openFileOutput(strAvatarFilename, MODE_PRIVATE)); 
    } catch (Exception e) { 
     Log.e(DEBUG_TAG, "Avatar compression and save failed.", e); 
    } 
    Uri imageUriToSaveCameraImageTo = Uri.fromFile(new File(PhotoActivity.this.getFilesDir(), strAvatarFilename)); 
    Editor editor = Preferences.edit(); 
    editor.putString(PREFERENCES_AVATAR, imageUriToSaveCameraImageTo.getPath()); 
    editor.commit(); 
    ImageButton avatarButton = (ImageButton) findViewById(R.id.ImageButton_Avatar); 
    String strAvatarUri = Preferences.getString(PREFERENCES_AVATAR, ""); 
    Uri imageUri = Uri.parse(strAvatarUri); 
    avatarButton.setImageURI(null); 
    avatarButton.setImageURI(imageUri); 
} 

這並保存圖像,但是當我去看看在SD卡TI圖像被稱爲imag001等不是我標記它的ID。我如何將圖像保存爲我想要調用它的名稱?至於

編輯

我發現了一些有趣的事情......我相信,在DCIM/100MEDIA SD卡應用程序拍攝的圖像使用手機已設置爲默認的名稱存儲。但是,在data/data/com.andorid.packagename/files /下,圖像也可能與我給它的名稱一起存儲。

回答

3

表面上看,它好像你與代碼的第二行設置文件名:

String strAvatarFilename = Id + ".jpg"; 

我不知道其中id是從哪裏來的,你還沒有爲有足夠的背景,但它包含'imag001'似乎是合理的。爲了給你的圖像命名一些其他的東西,你需要一些其他的方法來設置這個值。這可能看起來有數百種不同的方式。

+0

仍然沒有工作,即使我不使用ID,我只是鍵入我自己的圖像名稱「exampleimage.jpg」它仍然稱之爲IMAG0012 – Beginner 2011-02-08 11:43:23

+0

需要看看實際在代碼中看起來像什麼變化,以找出爲什麼。 – 2011-02-08 13:12:52

1

您發佈的代碼看起來很好,除了一件事。函數的第一行。你永遠不會傳遞任何id給這個函數,所以它使用一個全局類變量(我猜是這樣)。

解決你的問題,你應該將功能更改爲類似的東西,

private void saveAvatar(String id, Bitmap avatar) { 
    String strAvatarFilename = id + ".jpg"; 
    ... 
} 

這樣,你總是知道究竟該ID是從哪裏來的。在您當前的代碼中,不清楚您獲得該ID的位置以及是否在任何地方進行了修改。