android 取得本地相册相片或者照相即照相后取出图片

2023-11-23 10:58

本文主要是介绍android 取得本地相册相片或者照相即照相后取出图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//打开相册去图片或者照相

》public void OpenGallery() {//相册

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, PHOTO_REQUEST_GALLERY);
}


private File mTempFile;
public void OpenCamera(Context context) {//拍照
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
String picPath = FileOperatUtils.hasSDcardOnCreateFile();
if (StringUtils.isEmpty(picPath)) {
Toast.makeText(context, "SD卡不存在,无法使用拍照!", Toast.LENGTH_LONG).show();
return;
}
mTempFile = new File(picPath,
"IMG_"
+ DataFormatUtils.timeStampToYMDhHSM(System
.currentTimeMillis()) + ".jpg");
Uri uri = Uri.fromFile(mTempFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, PHOTO_REQUEST_CAREMA);

}

》@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

String picPath = null;
if (requestCode == PHOTO_REQUEST_GALLERY) {// 相册
if (data != null) {
Uri uri = data.getData();

String schemeStr = data.getScheme().toString();


if (schemeStr.compareTo("file") == 0) {


picPath = uri.toString();
picPath = picPath.replace("file://", "");

} else if (schemeStr.compareTo("content") == 0) {
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = null;
cursor = mContext.getContentResolver().query(uri,
filePathColumn, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int columnIndex = cursor
.getColumnIndex(filePathColumn[0]);
picPath = cursor.getString(columnIndex);
cursor.close();

}
}


}
} else if (requestCode == PHOTO_REQUEST_CAREMA) {// 拍照
if(resultCode != 0){
if (FileOperatUtils.hasSdcard()) {
picPath = mTempFile.getAbsolutePath();
}
}
}
if (!StringUtils.isEmpty(picPath)) {
Bitmap bmp = ImageCompression.getBitmapFromUri(picPath);// 根据地址压缩图片
if (bmp != null) {
mBitmapList.add(0, bmp);
mGvImgsAdapter.notifyDataSetChanged();
}
}
super.onActivityResult(requestCode, resultCode, data);
}

这篇关于android 取得本地相册相片或者照相即照相后取出图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417440

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级