Привет Я вставляю изображение с камеры (Делаю снимок) в хранилище MediaStore.Images.Media.Показать последнее изображение
Кто-нибудь знает, как я могу отобразить последнюю фотографию?
Я использовал Uri image = ContentUris.withAppendedId (externalContentUri, 45); для отображения изображения из хранилища данных, но, очевидно, 45 не является правильным изображением.
Я пытаюсь передать информацию из предыдущей активности (камеры) в активность отображения, но я предполагаю, что из-за обратного вызова фотографии это ее собственный поток, значение никогда не будет установлено. Фото код выглядит следующим образом
Camera.PictureCallback photoCallback = новый Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
// TODO Auto-generated method stub
FileOutputStream fos;
try
{
Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length);
fileUrl = MediaStore.Images.Media.insertImage(getContentResolver(), bm, "LastTaken", "Picture");
if(fileUrl == null)
{
Log.d("Still", "Image Insert Failed");
return;
} else
{
picUri = Uri.parse(fileUrl);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, picUri));
}
}
catch(Exception e)
{
Log.d("Picture", "Error Picture: ", e);
}
camera.startPreview();
}
};
конечно, вы будете по-прежнему есть ли файловый поток, который вы использовали для сохранения данных? – thecoshman
ФайлURL указывает на файл - однако этот метод вызывается в его собственном потоке camera.takePicture (shutterBack, null, photoCallback); Таким образом, fileURL никогда не возвращает значение (всегда null). Я поставил основной поток в режим сна и удерживал его в цикле while в надежде, что он имеет значение, но, похоже, это не происходит для основного потока. – Steve