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的专栏 7882

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

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

帅次的博客 1万+

android studio 相册的学习感受

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

2301_77122660的博客 423

Android标准的选择图片操作

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

一片枫叶的专栏 3349

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

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

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

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

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

weixin_42596011的博客 1110

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

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

weixin_42146086的博客 504

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

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

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

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

weixin_42514005的博客 569

分享实现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 {

离线迁移 Conda 环境到 Windows 服务器:用 conda-pack 摆脱硬路径限制

在进行深度学习算法的环境部署时,由于生产服务器被彻底隔离外网,只能把conda中env文件夹中的虚拟环境文件夹从开发机直接拷到Windows 服务器,但在运行labelimg等工具时可能报错,因此用conda-pack来解决。

weixin_44115575的博客 1428

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

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

Beyond0525的专栏 12万+

KiCad自动布线实战:FreeRouting插件安装与使用指南

在PCB设计流程中,布线环节往往占据大量重复性工作,尤其对于中小型双面板,成百上千条飞线的手动连接既繁琐又易出错。自动布线技术通过算法在给定设计规则和元件布局的基础上自动规划走线路径,能显著提升布线效率。FreeRouting作为一款开源自动布线器,与KiCad通过DSN/SES标准中间格式无缝配合,让工程师将精力集中于关键信号和布局优化,而将常规网络交给工具处理。本文从自动布线的原理与边界出发,讲解了FreeRouting的安装、DSN导出、参数设置、自动布线及结果回传的完整流程,并结合实际案例展示了在S

weixin_32025789的博客 280

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

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

weixin_30955739的博客 1063

《算法第四版》学习心得一——怎么学算法

 一、算法的两个核心 算法的核心内容实际上有两个: 算法的概念和思路。 算法的编程实现。 两者相互关联影响,缺一不可。 不理解基本概念和思路,就算把实现代码背下来,也无济于事,因为脑袋里依然是一片模糊。理解了概念和思路,不去用代码实现,脑袋里有的只是概念,无法根据真实需求实现解决方案。 二、学算法需要什么基础 首先,必须要有一定的编程语言基础,要理解语言中最基本的概念:数据类型,类,成...

illikang的博客 3910

SPSS线性混合模型实战:手把手复现一篇老年认知研究的统计结果(含代码)

本文详细介绍了如何使用SPSS线性混合效应模型复现老年认知研究的统计结果,涵盖数据准备、模型构建、结果解读及可视化全流程。特别针对重复测量数据分析,提供了SPSS菜单操作与语法编写的实用技巧,帮助研究者高效处理复杂数据并验证模型假设。

weixin_42562079的博客 518

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万+

STM32使用内部RC振荡器作为系统时钟开发项目--内晶振启动模板工程

STM32使用内部RC振荡器时,OSC32_IN,OSC32_OUT接法: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法:    2.1)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。    2.2)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出

overflyme的博客 1万+

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

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

u011125199的博客 530

基于FPGA的时间数字转换(TDC)设计(五:基于Carry4的高精度TDC设计)

基于FPGA的时间数字转换(TDC)设计,此为第五篇:基于Carry4的高精度TDC设计。提供工程文件及MATLAB测试分析代码

sdau2005的博客 8805

【ArcGIS微课1000例】0068:ArcGIS加载world imagery高清卫星影像教程

本文介绍了如何在ArcGIS中加载World Imagery高清卫星影像作为谷歌影像的替代方案。通过添加ArcGIS Server并输入在线图集URL(https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer),即可连接并预览包含中国影像、青海湖、东方明珠等全球高清卫星图。该教程提供了详细的操作步骤图示,帮助用户快速获取优质底图数据,适用于地理信息分析和可视化应用。

智慧空间实验室 5420

android中调用相册

选择相册

麦壳的记忆 431

顶刊论文引言用AI怎么写?借助Gemini 3 Pro结合四段式写出逻辑清晰的Introduction

写研究目标时,先明确研究问题,直接回应前文提到的研究缺口,如 “This study aims to investigate whether X modulates Y via the Z pathway in human cells.”然后再提出你的研究假设,当理论依据清晰时,可以用如 “We hypothesized that inhibiting X would rescue Y deficiency in this model.”的句子点出研究目标。要求:1)明确陈述本研究拟解决的核心科学问题;

智能AI让学术科研更容易 181

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

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

NNadn的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

android拍照或相册选照片,裁剪,圆图处理(4.4变动后)

项目催的实在太紧了,作为一个刚入门的Android新人,刚进公司就就得干活,问题还是没人带,只能硬着头皮做,不说了,说的都是泪,回归正题 关于拍照,获取相册相片,裁剪,网上有一大堆,不过弄了大半天,一个也没跑成,结果还是自己写,下面是几篇参照文章,非常感谢奉献者: Android大图片裁剪终极解决方案(1-3) 这篇文章思路比较清晰,对于不了解的可以先看看,分上、中、下三篇。

u010590901的专栏 2560

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

上一篇: Python3中安装pygame
下一篇: Android中EditText禁止输入表情
Code_legend
博客等级 码龄10年 33粉丝 30原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值