Переименуйте имя файла фотографии, но эскиз неправильный - PullRequest
0 голосов
/ 15 марта 2012

Я использую строку ниже, чтобы получить миниатюру:

bitmap = MediaStore.Images.Thumbnails.getThumbnail(act.getApplicationContext().getContentResolver(), fid, MediaStore.Images.Thumbnails.MICRO_KIND, null);

И я пытаюсь переименовать имя файла с кодом ниже:

File rename = new File(oldname);
String newpath = newname;
rename.renameTo(new File(newname));

И использовать код ниже для обновления базы данных:

IntentFilter intentfilter = new IntentFilter(Intent.ACTION_MEDIA_SCANNER_STARTED);
intentfilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);
intentfilter.addDataScheme("file");
MediaScannerReceiver scanSdReceiver = new MediaScannerReceiver();
registerReceiver(scanSdReceiver, intentfilter);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory().getAbsolutePath()))); 

public class MediaScannerReceiver extends BroadcastReceiver {  
@Override  
public void onReceive(Context context, Intent intent) {  
String action = intent.getAction();
if(action.equals("android.intent.action.MEDIA_SCANNER_FINISHED")) { 
bitmap = MediaStore.Images.Thumbnails.getThumbnail(act.getApplicationContext().getContentResolver(), fid, MediaStore.Images.Thumbnails.MICRO_KIND, null);
}
} 
}  

Успешное изменение имени файла, идентификатор файла также получает новое.Но показанный эскиз был неправильным.Как правильно получить один эскиз?

1 Ответ

1 голос
/ 27 марта 2012

Это может вызвать, потому что миниатюра не удаляется.И файл, который после переименования один и тот же идентификатор.Так что покажите старый эскиз.Вы можете попробовать очистить папку /sdcard/DCIM/.thumbnails и создать новую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...