我试图重命名图像,然后再将其保存在应用程序内部目录的子目录中
这个想法是重命名图像,以便当用户想要用新图像替换它时,可以删除具有相同名称的旧图像。因此,在子目录中的每一点上只有一个具有该名称的图像
当前,我可以从图库中选择图像并将其显示在ImageView
中(用于用户个人资料)。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getActivity().getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String iPath = cursor.getString(columnIndex);
File filePath = new File(iPath);//To get image name
cursor.close();
Bitmap image = BitmapFactory.decodeFile(iPath);
//IMAGE RENAMING PLANNED TO BE HERE
//ImageView1.setImageBitmap(image); Image displays in ImageView
saveImage(image);
}
}
调用saveImage方法
private String saveImage(Bitmap image){
File file = new File(getContext().getFilesDir().getParent().concat("/image" ));
// FileOutputStream fileOutputStream= null;
if (!file.exists())
{
file.mkdir();
if (file.exists())
{
Toast.makeText(getContext(), "Created", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getContext(), "NOT created", Toast.LENGTH_LONG).show();
}
// fileOutputStream = new FileOutputStream()
}
else
{
Toast.makeText(getContext(), "Directory exists", Toast.LENGTH_LONG).show();
}
return null;
}
我想做的就是重命名该图像,然后再将其保存到应用程序的默认内部目录中(重命名应在将“ iPath”解码为“图像”之后进行)