Android开发从相册中选取照片

Android---打开相册选择图片 Android简易的打开相册选择图片,适用与个人主页头像的切换 阅读详情

最近项目在做一个功能:就是需要从用户选择头像跳转到相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽。

下面说两种方法分别是直接选择相册返回,另外一种为选择相册之后进行裁剪。先上效果图这里写图片描述

  • (1)直接选择相册后返回
  • 第一步就是主要跳转的相册
 //在这里跳转到手机系统相册里面
        Intent intent = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        startActivityForResult(intent, IMAGE_REQUEST_CODE);
  第二步就是返回的时候获取相册的路径
  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        //在相册里面选择好相片之后调回到现在的这个activity中
        switch (requestCode) {
            case IMAGE_REQUEST_CODE://这里的requestCode是我自己设置的,就是确定返回到那个Activity的标志
                if (resultCode == RESULT_OK) {//resultcode是setResult里面设置的code值
                    try {
                        Uri selectedImage = data.getData(); //获取系统返回的照片的Uri
                        String[] filePathColumn = {MediaStore.Images.Media.DATA};
                        Cursor cursor = getContentResolver().query(selectedImage,
                                filePathColumn, null, null, null);//从系统表中查询指定Uri对应的照片
                        cursor.moveToFirst();
                        int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                        path = cursor.getString(columnIndex);  //获取照片路径
                        cursor.close();
                        Bitmap bitmap = BitmapFactory.decodeFile(path);
                        iv_photo.setImageBitmap(bitmap);
                    } catch (Exception e) {
                        // TODO Auto-generatedcatch block
                        e.printStackTrace();
                    }
                }
                break;
        }
    }
  • (2) 选择图片后裁剪先上图
    这里写图片描述
  • 首先也是要调起相册
// 使用意图直接调用手机相册
        Intent intent = new Intent(
                Intent.ACTION_PICK,
                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
        // 打开手机相册,设置请求码
        startActivityForResult(intent, IMAGE_REQUEST_CODE);

然后这里增加了一步就是用户选择了相册之后然后再增加裁剪功能

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode != RESULT_OK) {
            return;
        } else {
            switch (requestCode) {
                case IMAGE_REQUEST_CODE:
                    resizeImage(data.getData());
                    break;

                case RESIZE_REQUEST_CODE:
                    if (data != null) {
                        showResizeImage(data);
                    }
                    break;
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }
    //这里增加裁剪
    public void resizeImage(Uri uri) {
        Intent intent = new Intent("com.android.camera.action.CROP");
        intent.setDataAndType(uri, "image/*");
        intent.putExtra("crop", "true");
        intent.putExtra("aspectX", 1);
        intent.putExtra("aspectY", 1);
        //裁剪的大小
        intent.putExtra("outputX", 150);
        intent.putExtra("outputY", 150);
        intent.putExtra("return-data", true);
        //设置返回码
        startActivityForResult(intent, RESIZE_REQUEST_CODE);
    }
    private void showResizeImage(Intent data) {
        Bundle extras = data.getExtras();
        if (extras != null) {
            Bitmap photo = extras.getParcelable("data");
            //裁剪之后设置保存图片的路径
            String path = getFilesDir().getPath() + File.separator + IMAGE_FILE_NAME;
            //压缩图片
            ImageUtils.saveImage(photo, path);
            new BitmapDrawable();
            Drawable drawable = new BitmapDrawable(photo);
            iv_photo.setImageDrawable(drawable);
        }
    }

ok,源代码下载

Android 打开相册选择图片相册图片返回路径获取 Android 打开相册选择图片相册图片返回路径获取。 阅读详情

相关推荐

andorid下从相册选取/拍照选取一张相片并剪切

Android编程中,从相册选取或是拍照选取一张照片然后对其进行剪切的需求非常的多 之前的一篇文章只说到如果从相册中获取一张照片,今天就跟大家说说如何将获取到的相片进行剪切 完整源码下载 我们先说一下思路,在android系统中就自带了图片剪切的应用,所以,我们只需要将我们获取到的相片传给图片剪切应用,再将剪切好的相片返回到我们自己的界面显示就ok了 第一步,我们可以先激活系统图片

reality_jie的专栏 7876

Android 打开相册选择单张图片实现代码

Android 打开相册选择单张图片实现代码                 以下就是如何在应用中打开图库并选择一张图片进行应用,代码很简单,注释很详细。 实现代码: btn8.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { /*在Activity Action里面有一个“ACTION_GET_CONTENT”字符串常量, // 该常量让用户选择特定类型的数据,并返回该数据的URI.我们利用该常量, //然后设置类型为“image/*”

android studio 相册的学习感受

总体上,Android Studio 中使用相册不仅要熟悉 Intent 的常规用法和图片处理相关API ,同时也需要有具备图像压缩、文件操作等技术。这样方能在应用中无宕机服务地访问手机自带的相册功能,并流畅地处理大量图片数据。在 Android Studio 中使用相册的确非常重要,因为很多应用程序都需要让用户选择照片或者从相册中查看已有的照片。首先,在开发过程中,很常见需要访问设备上的相册。方法中设置所选文件的类型为“ image/ * ”,以便相册应用程序能够显示正确的图像。

2301_77122660的博客 418

分享实现Android图片选择的两种方式

Android选择图片的两种方式: 第一种:单张选取 通过隐式启动activity,跳转相册选择一张返回结果 关键代码如下: 发送请求: private static final int PICTURE = 10086; //requestcode Intent intent = new Intent(); if (Build.VERSION.SDK_INT < 19) {//因为Android SDK在4.4版本后图片action变化了 所以在这里先判断一下 intent.setAction(Intent.ACTION_GET_CONTENT); } else {

Android基础进阶 - 获取、调用相册图片

本篇讲的是获取我们相册照片,用于展示,包含获取对应的图片的存放地址。

Android、前端、小程序、后端 7271

Android 打开相册选择图片(史上最简单)

这是一个打开相册选择图片的故事,不涉及拍照、多图片选择,就是简单的一个单图片选择并展示(不涉及任何权限)。 1、activity_main.xml 2、MainActivity.java 3、下面咱就来运行效果

帅次的博客 1万+

Android标准的选择图片操作

打开相机一般来说有两种方式,一种是自己初始化相机,调用Camera组件,相对来说这种比较复杂,需要做的工作也比较多,还有一种是调用相机的隐式Intent打开相机,打开相机选择图片这种需求其实调用隐式Intent就可以了,没必要自己初始化camera对象...

一片枫叶的专栏 3344

android相册选择,Android开发相册选取照片

最近项目在做一个功能:就是需要从用户选择头像跳转相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽。下面说两种方法分别是直接选择相册返回,另外一种为选择相册之后进行裁剪。先上效果图这里写图片描述(1)直接选择相册后返回第一步就是主要跳转相册//在这里跳转到手机系统相册里面Intent intent ...

weixin_42146086的博客 501

Android相册中搜索功能,Android开发相册选取照片的示例代码

最近项目在做一个功能:就是需要从用户选择头像跳转相册选择图片,这应该是一个很简单的需求,但是在网上搜了一下有好多都讲的很乱,其实用几十行代码就可以实现的为什么要说的那么复杂呢,下面就简单说一下喽。下面说两种方法分别是直接选择相册返回,另外一种为选择相册之后进行裁剪。先上效果图(1)直接选择相册后返回第一步就是主要跳转相册//在这里跳转到手机系统相册里面Intent intent = new I...

weixin_42514005的博客 566

Android开发之获取相册照片和获取拍照照片

Android开发过程中,我们可能会读取手机里面的照片或者通过相机拍摄获取照片,这是两种常用的获取图片的方式,在做项目过程中也会经常遇到,下面来介绍一下这两种获取方式.. 1.从本地相册获取照片: 一般就是写出这个方法 protected void getImageFromAlbum() { Intent intent = new Intent(Intent.ACTIO

Beyond0525的专栏 12万+

android 自定义相册选择,Android通过手机拍照或从本地相册选取图片设置头像

像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1、让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。2、让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像。我现在写一个简单的完整代码例子,说明如何在android中实现上述两个头像设置功能。MainActivity.Java文件:package zhangpgil.photo;import j...

weixin_30955739的博客 1061

Android 打开相机、相册获取图片文件,适配支持Android 10.0、Android 9.0系统,解决解决Android 6.0以上的高版本跳转相机闪退问题,以及相机返回图片不显示问题。

解决Android 6.0以上的高版本跳转相机闪退问题,以及相机返回图片不显示问题。 AndroidManifest.xml 中添加权限 <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" pac...

ERP_LXKUN_JAK 1万+

Android完美满足你所有的拍照或从相册选取照片

这里说一下在大多数的软件中都会有这样的需求,就是从相册选取照片或者拍照上传这样的功能,虽然都是调取系统的东西,可我们经常在自己写的时候会遇到很多问题,文件的读写,压缩,裁剪,各种问题,亦或者选取多张照片等等,我以前也自己写过,但是总觉得都不是非常的好,并且有时需求变了又要重新改,真的是有点麻烦呀,正好最近公司有个项目也需要用到这样的功能,因此就想着彻底的来解决一下这个问题。在Github上逛了一下就

u011125199的博客 528

android中调用相册

选择相册

麦壳的记忆 412

Flutter——头像上传功能,实现照片选择及裁剪

使用两个开发库,image_picker和image_crop。 前者用来拍照或者从相册选择照片,后者用来裁剪,结果均为File类型,裁剪完成后可以直接上传文件。 先写到这儿,有时间上代码。 更新: 实现的功能是点击头像图片,弹出选择框,选择拍照或者从相册选取: 拍照或选取一张图片后,裁剪到想要大小。进行保存或者上传。 实现: 首先的首先,在Android的manifest...

NNadn的博客 1万+

Android应用中相机与相册的调用技巧

小米设备的相机调用兼容性优化是一个持续的过程,需要开发者跟踪最新的MIUI更新以及小米官方的相机API文档。通过上述步骤,开发者能够提高应用在小米设备上的稳定性和用户体验。随着小米设备的不断更新和硬件配置的提升,兼容性优化将会是Android开发者持续关注的重点之一。Intent是一个消息传递对象,你可以使用它来请求不同的动作从其他应用组件中。Intent分为显式和隐式两种。

weixin_42596011的博客 1105

php从手机相册选择图片,Android通过手机拍照或从本地相册选取图片设置头像

像微信、QQ、微博等社交类的APP,通常都有设置头像的功能,设置头像通常有两种方式:1、让用户通过选择本地相册之类的图片库中已有的图像,裁剪后作为头像。2、让用户启动手机的相机拍照,拍完照片后裁剪,然后作为头像。我现在写一个简单的完整代码例子,说明如何在android中实现上述两个头像设置功能。MainActivity.Java文件:package zhangpgil.photo;import j...

weixin_30598353的博客 169
上一篇: Python3中安装pygame
下一篇: Android中EditText禁止输入表情
Code_legend
博客等级 码龄10年 33粉丝 30原创
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值