安卓相机:获取最近拍摄的照片缩略图做相册按钮图标

java 复制代码
String[] projection = { MediaStore.Images.Media._ID, MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, MediaStore.Images.Media.DATE_TAKEN + " DESC");
if (cursor != null && cursor.moveToFirst()) {
    String path_camera = Environment.getExternalStorageDirectory().toString() + "/DCIM/Camera/";
    while (true) {
        int index_id = cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID);
        int index_data = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        long id = cursor.getLong(index_id);
        String path = cursor.getString(index_data);
        if (path.startsWith(path_camera)) {
            Bitmap bitmap = MediaStore.Images.Thumbnails.getThumbnail(getContentResolver(), id, MediaStore.Images.Thumbnails.MINI_KIND, null);
            imageButton_album.setImageBitmap(bitmap);
            break;
        } else
            cursor.moveToNext();
    }
    cursor.close();
}

拍完照要写入媒体数据库

复制代码
https://blog.51cto.com/vaero/779942
java 复制代码
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, filename);
values.put(MediaStore.Images.Media.DISPLAY_NAME, filename);
values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
values.put(MediaStore.Images.Media.DATA, filepath);
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
MediaScannerConnection.scanFile(MainActivity.this, new String[] { filepath }, null, null);

但是,只能获取系统相机拍摄的照片,自己拍的照片取不到,数据库插入失败?

相关推荐
jack186894 小时前
安卓手机忘记锁屏密码怎么办? 无需密码也可解锁
android·智能手机
应用市场7 小时前
不用一张图片的像素小游戏:小人是字符串,房间是矩形,平衡靠两千个假玩家
android·kotlin·游戏开发
stevenzqzq8 小时前
android 对渠道的理解
android
QEasycloud8 小时前
BOM接口抛转失败钉钉通知策略实战教程:MySQL异常日志到钉钉消息的端到端配置
android·mysql·钉钉
AIsoft_86898 小时前
医患交流内容如何做好记录?
android·iphone
蒸鱼Yuzheng9 小时前
Android Native 崩溃证据链:Tombstone、Build ID 与 Trace 如何联合归因
android·ndk·tombstone·调试符号·崩溃分析
事圆则缓9 小时前
Kotlin 变量与函数:把页面状态和行为写成清楚的契约
android·开发语言·kotlin
hunterandroid9 小时前
MVVM 迁移到 MVI:复杂页面状态如何收敛
android
妖星9 小时前
Android 开机动画定制:从 bootanimation.zip 到源码编译
android
临期冰淇淋10 小时前
MTK平台 安卓16 GMS报错修改
android·java·前端