更名时在Android图库图像消失(Image disappears in Android Gall

2019-09-22 17:26发布

我试图重新命名库从相机拍摄的图像赋予了新的名称。 当我改名的文件中的原始图像中消失2个显示黑色方块。 任何一个可以帮我告诉我的程序重新命名图库图片排序这个问题。

路径如下: /mnt/sdcard/DCIM/Camera

我试图通过更新如下内容提供商的图像标题:

ContentValues val = new ContentValues();
val.put(Images.Media.TITLE, "ImageTitle23");
getContentResolver().update(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, val, null, null);

图像标题在画廊改变。

但是,当我尝试查询更新的图像,如下我收到名称相同,前一个:

final String[] imageColumns = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID+" DESC";   
Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns, MediaStore.Images.Media._ID+"="+id, null, imageOrderBy);  
if(imageCursor.moveToFirst()){    
  int idd = imageCursor.getInt(imageCursor.getColumnIndex(MediaStore.Images.Media._ID)); 
  String fullPath = imageCursor.getString(imageCursor.getColumnIndex(MediaStore.Images.Media.DATA)); 

谁能帮我整理出这个问题?

Answer 1:

画廊与MediaStore内容提供商进行交互。 如果更改图像文件的名称,你可能需要在内容提供商来更新字段。

您可以在MediaStore参考阅读它: http://developer.android.com/reference/android/provider/MediaStore.Images.Media.html

可能你可以触发MediaStore的刷新。 看看这些线: 我怎样才能刷新MediaStore在Android?



Answer 2:

该MediaStore会在您的图片变化,但不会实时所有的变化作出反应。 每次做这样的修改时间,你应该问的MediaScanner扫描此文件:

MediaScannerConnection.scanFile(
  getApplicationContext(), 
  new String[]{file.getAbsolutePath()}, 
  null, 
  new OnScanCompletedListener() {
     @Override
     public void onScanCompleted(String path, Uri uri) {
        Log.v("grokkingandroid", 
              "file " + path + " was scanned seccessfully: " + uri);
     }
  });

此外,你应该检查这个博客帖子 ,让很多有用的信息在这个用例。



文章来源: Image disappears in Android Gallery when renamed