本文主要介绍如何读取Android本地图库的图片以及调用安卓的摄像头进行拍摄。

一、布局

布局比较简单,MainActviivty的布局文件只有两个按钮,一个是读取图库的,另一个是打开摄像头的,另外ResultActivity的布局只有一个ImageView,用于显示所选择的图片或者所拍摄的图片。

二、读取图库

由于需要打开安卓自带的图库,所以我们需要用到Intent这个类,主要用于不同Activity之间的通讯,代码如下://设置返回码:标识本地图库 private static final int RESULT_IMAGE=100; //设置MIME码:表示image所有格式的文件均可 private static final String IMAGE_TYPE="image/*"; //实例化Intent,传入ACTION_PICK,表示从Item中选取一个数据返回 Intent intent=new Intent(Intent.ACTION_PICK,null); //设置Data和Type属性,前者是URI:表示系统图库的URI,后者是MIME码 intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,IMAGE_TYPE); //启动这个intent所指向的Activity startActivityForResult(intent,RESULT_IMAGE);

三、摄像头拍摄照片//设置返回码:标志照相机拍摄 private static final int RESULT_CAMERA=200; //设置一个临时路径,保存所拍的照片 private static String TEMP_IMAGE_PATH; //获取该路径 TEMP_IMAGE_PATH= Environment.getExternalStorageDirectory().getPath()+"/temp.png"; //传入ACTION_IMAGE_CAPTURE:该action指向一个照相机app Intent intent1=new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //创建File并获取它的URI值 Uri photoUri=Uri.fromFile(new File(TEMP_IMAGE_PATH)); //MediaStore.EXTRA_OUTPUT为字符串"output",即将该键值对放进intent中 intent1.putExtra(MediaStore.EXTRA_OUTPUT,photoUri); startActivityForResult(intent1,RESULT_CAMERA);

四、设置回调方法

由二、三的代码可知,由于运行了startActivityForResult()方法,所以我们设置一个回调方法,获取在其他应用中选择的数据:@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(resultCode==RESULT_OK){ if(requestCode==RESULT_IMAGE&&data!=null){ //相册 //通过获取当前应用的contentResolver对象来查询返回的data数据 Cursor cursor=this.getContentResolver().query(data.getData(),null,null,null,null); //将cursor指针移动到数据首行 cursor.moveToFirst(); //获取字段名为_data的数据 String imagePath=cursor.getString(cursor.getColumnIndex("_data")); //设置一个intent Intent intent=new Intent(MainActivity.this,ResultActvity.class); //传入所获取的图片的路径 intent.putExtra("mPicPath",imagePath); //销毁cursor对象,释放资源 cursor.close(); startActivity(intent); }else if(requestCode==RESULT_CAMERA){ //相机 Intent intent=new Intent(MainActivity.this,ResultActvity.class); //由于拍照的时候设置了一个保存路径,所以直接放入该路径 intent.putExtra("mPicPath",TEMP_IMAGE_PATH); startActivity(intent); } } }

五、展示图片

展示图片则比较简单,在新的Activity中获取intent中的路径,然后创建一个Bitmap,并设置为imageView即可,代码如下:public class ResultActvity extends Activity { private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.result); imageView= (ImageView) findViewById(R.id.image); Intent intent=getIntent(); String picPath=intent.getStringExtra("mPicPath"); Bitmap bitmap=BitmapFactory.decodeFile(picPath); imageView.setImageBitmap(bitmap); } }

至此,一个读取本地图库与调用摄像头拍摄的demo已经完成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

android读取外部图片,Android读取本地图库与调用摄像头拍摄相关推荐

  1. android加载本地图库,Android读取本地图库与调用摄像头拍摄

    本文主要介绍如何读取Android本地图库的图片以及调用安卓的摄像头进行拍摄. 一.布局 布局比较简单,MainActviivty的布局文件只有两个按钮,一个是读取图库的,另一个是打开摄像头的,另外R ...

  2. Android学习-运用手机多媒体-通知使用技巧、调用摄像头拍照、从相册中选取照片、播放音频和视频文件(MediaPlayer、VideoView)

    android提供了一系列的API,使得我们可以在程序中调用很多的多媒体资源,从而编写出更加丰富多彩的应用程序. 使用通知 通知(Notification)是Android系统中比较有特色的一个功能, ...

  3. android 聊天背景图片,Android 实现从本地读取图片更改聊天背景

    现在很多社交软件都有这个功能,因为本次我参加一个比赛也是要做一个社交软件,所以我就"画蛇添足"的添加了这个一个功能,因为我也是个Android初学者,所以说修改bug浪费了我至少1 ...

  4. android jar 加入图片,Android动态加载外部jar包及jar包中图片等资源文件

    Android动态加载外部jar包及jar包中图片等资源文件 Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现.动态加载Class,也就是外部jar包,在 ...

  5. android 点动态显示图片,Android用RecyclerView实现动态添加本地图片

    本文介绍了Android用RecyclerView实现动态添加本地图片,分享给大家,具体如下: 简单介绍一下用法: 1.跳转到图片选择页面: Intent intent = new Intent(Pa ...

  6. android网络下载图片并且显示在图库中

    1:网络下载图片 主要是练习网络编程,获取网络数据.不能使用网络资源的软件是很难有长足的发展和进步的,个人觉得,所以最近在学习网络相关的编程.这里就把我做的demo发在这里,同时我也梳理一下知识点.废 ...

  7. android自适应拉伸图片,Android 启动页-解决图片被拉伸和压缩问题,适配虚拟导航栏...

    Android 启动页设置非常简单 //styles.xml 设置主题 @drawable/bg_splash true //activity使用主题,这时点击app图标,就会显示@drawable/ ...

  8. android生成png图片,Android 中将 base64图片 解码为.png图片

    android 中将 "base64图片" 解码为".png"图片 参考: 方法一 String base64Img = ""; // 若包 ...

  9. android textview 背景图片,Android—TextView 背景颜色与背景图片设置

    Android TextView 背景颜色与背景图片设置,android textview 控件,android textview 背景, android textview 图片,android te ...

最新文章

  1. 2022-2028年中国演出市场深度调研与投资可行性报告
  2. ASP.NET 会话状态
  3. Tomcat 处理 HTTP 请求源码分析(下)【转】
  4. 专题目录20211013-ongoing
  5. 如何才能在SQL查询器中使用语句查询出表的列名及数据类型(包括类型和长度)...
  6. RSA 公钥加密——私钥解密
  7. 禅道 11.4.1 版本发布,主要优化细节
  8. 元器件在线分销的探索之路
  9. docker 中运行 mysql
  10. Window+Anaconda3+TensorFlow少挖坑安装
  11. Control-Tree
  12. ZipEntry 类,zip的压缩与解压
  13. 引发0xC0000005内存违例几种可能原因分析
  14. MonoJSG:联合语义和几何代价函数的单目3D目标检测(CVPR2022)
  15. linux idle是什么进程,Linux idle基础
  16. coffeescript基本语法
  17. Android camera2扫描
  18. Windows怎么把视频变成GIF,动态图怎么制作
  19. VSCode全局搜索快捷键失效
  20. SpringMVC配置自定义过滤器

热门文章

  1. QT实现在图表顶部绘制一个附加元素(标注)
  2. QT的QCameraImageCapture类的使用
  3. python获取工作日_python – 获取下一个工作日的日期
  4. HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
  5. 2.安装号mysql后当重启Linux服务器之后发现进入不了的解决方案
  6. 拷贝构造,操作符重载
  7. CheckStyle及其配置的详细解释
  8. 删除Oracle数据库时常见问题(注册表方面,文件目录方面,环境变量方面)
  9. FormatUtil
  10. Python分类模型评估