Android 拍照本地图片选择框架适配

前言

通常技术方案的选择、会带来后续一些不可控的东西,这也是没法避免的,程序开发者中同时面对、测试、领导、产品各种要求。同时在网络上查找的资料也只是很旧的,不一定适合新设备,需要推倒重新弄

1、解决方案通过意图选择器做成通用的、同时支持拍照和本地图片选择

2、解决方案也可以低版本手机使用框架、高版本手机做成意图选择器,因为有些框架不会去适配新的Android API

需求一:选择本地图片

 private static final int PICK_IMAGE = 1;

点击事件
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            intent.setType("image/*");
            startActivityForResult(intent, PICK_IMAGE);

Activity回调
  @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == PICK_IMAGE && resultCode == RESULT_OK && data != null) {
            // 获取选择的图片的 URI
            Uri selectedImageUri = data.getData();
            Log.e(TAG,"selectedImageUri:"+selectedImageUri);
         
        }
   }

需求二:同时选择图片和拍照

  Intent intent = fileChooserParams.createIntent();
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        intent.setType("*/*"); // 任何文件类型
        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        imageUri = createCameraImageUri();
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
        Intent chooserIntent = Intent.createChooser(intent, "请选择");
        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{cameraIntent});

        startActivityForResult(chooserIntent, REQUEST_CODE_FILE_CHOOSER);



界面效果
在这里插入图片描述
在这里插入图片描述

总结

1、系统东西好用、不要随意找网上没人维护的代码

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值