2011-02-07 49 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的位置以及是否在任何地方进行了修改。