您好我正在将相机中的图像(拍照)插入MediaStore.Images.Media数据存储区。
有谁知道如何显示最后拍摄的照片?
我使用了Uri image = ContentUris.withAppendedId(externalContentUri,45);从数据存储区显示图像,但显然45不是正确的图像。
我尝试将上一个活动(Camera)中的信息传递给显示活动,但我假设由于照片回调是自己的线程,因此值永远不会被设置。照片代码如下
Camera.PictureCallback photoCallback = new 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();
}
};
答案 0 :(得分:1)
你可以使用这样的东西来获取最后拍摄的图像
final ContentResolver cr = getContentResolver();
final String[] p1 = new String[] {
MediaStore.Images.ImageColumns._ID,
MediaStore.Images.ImageColumns.DATE_TAKEN
};
Cursor c1 = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, p1, null, null,
p1[1] + " DESC");
if ( c1.moveToFirst() ) {
Log.d(TAG, "last picture (" + c1.getInt(0) + ") taken on: " +
new Date(c1.getLong(1));
}
c1.close();