Android打开相机和相册实例代码

本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下

打开相机

/** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (cameraIntent.resolveActivity(getPackageManager()) != null) { // 设置系统相机拍照后的输出路径 // 创建临时文件 mTmpFile = OtherUtils.createFile(getApplicationContext()); cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mTmpFile)); startActivityForResult(cameraIntent, REQUEST_CAMERA); } else { Toast.makeText(getApplicationContext(), R.string.msg_no_camera, Toast.LENGTH_SHORT).show(); } }

打开相册

Intent albumIntent = new Intent(Intent.ACTION_PICK, null); albumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*"); startActivityForResult(albumIntent, REQUEST_ALBUM_OK);

onActivityResult

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case REQUEST_CAMERA: //请求相机 if (mTmpFile != null) { Log.d(TAG, "onActivityResult: 请求相机: " + mTmpFile.getAbsolutePath()); Picasso.with(this).load(mTmpFile).centerCrop().resize(OtherUtils.dip2px(this,100),OtherUtils.dip2px(this,100)) .error(R.mipmap.pictures_no).into(mIvDispaly); } break; case REQUEST_ALBUM_OK: Log.d(TAG, "onActivityResult:相册 " + data.getData().toString()); ContentResolver resolver = getContentResolver(); try { InputStream inputStream = resolver.openInputStream(data.getData()); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); mIvDispaly.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } // Cursor query = resolver.query(data.getData(), null, null, null, null); // // String str = null; // while (query.moveToNext()) { // Log.d(TAG, "onActivityResult:数量 " + query.getCount()); // str =query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA)); // Log.d(TAG, "onActivityResult: 列名" + query.getString(query.getColumnIndex(MediaStore.Images.Media.DATA))); // } // query.close(); // Picasso.with(this).load(new File(str)).centerCrop().resize(OtherUtils.dip2px(this,100),OtherUtils.dip2px(this,100)) // .error(R.mipmap.pictures_no).into(mIvDispaly); break; } }

OtherUtils

import android.content.Context; import android.os.Environment; import java.io.File; import java.util.Date; /** * Created by 刘楠 on 2016/7/20 0020.22:37 */ public class OtherUtils { public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } /** * 获取拍照相片存储文件 * @param context * @return */ public static File createFile(Context context){ File file; if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ String timeStamp = String.valueOf(new Date().getTime()); file = new File(Environment.getExternalStorageDirectory() + File.separator + timeStamp+".jpg"); }else{ File cacheDir = context.getCacheDir(); String timeStamp = String.valueOf(new Date().getTime()); file = new File(cacheDir, timeStamp+".jpg"); } return file; } }

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

时间: 2024-09-28 18:53:52

Android打开相机和相册实例代码的相关文章

Android打开相机和相册实例代码_Android

本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下 打开相机  /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (cameraIntent.resolveActivity(getPackageManager()) != null) { // 设置系统相机拍照后的输出路

Android DrawerLayout实现抽屉效果实例代码

官网:https://developer.android.com/training/implementing-navigation/nav-drawer.html 贴上主要的逻辑和布局文件: activity_main.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="http://schema

跳转-一个关于打开相机获取相册照片的问题

问题描述 一个关于打开相机获取相册照片的问题 我是点击ViewControllerde背景跳转到self_supportViewController页面 然后再这里面的一个button上添加点击事件,点击打开相机或者相册,模拟器上可以打开相册,然后选择图片,点击choose的时候没有反应 打印这一句 解决方案 参照下这个:http://stackoverflow.com/questions/14334480/warning-attempt-to-present-viewcontroller-wh

Android 底部导航控件实例代码_Android

一.先给大家展示下最终效果 通过以上可以看到,图一是简单的使用,图二.图三中为结合ViewPager共同使用,而且都可以随ViewPager的滑动渐变色,不同点是图二为选中非选中两张图片,图三的选中非选中是一张图片只是做了颜色变化. 二. 需求 我们希望做可以做成这样的,可以在xml布局中引入控件并绑定数据,在代码中设置监听回调,并且配置使用要非常简单! 三.需求分析 根据我们多年做不明确需求项目的经验,以上需求还算明确.那么我们可以采用在LinearLayout添加子View控件,这个子Vie

Android 动态添加Fragment的实例代码_Android

1.fragment1布局及代码 布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&quo

Android自定义控件下拉刷新实例代码_Android

实现效果: 图片素材: --> 首先, 写先下拉刷新时的刷新布局 pull_to_refresh.xml: <resources> <string name="app_name">PullToRefreshTest</string> <string name="pull_to_refresh">下拉可以刷新</string> <string name="release_to_refre

Android okhttputils现在进度显示实例代码_Android

OkHttpUtils是一款封装了okhttp的网络框架,支持大文件上传下载,上传进度回调,下载进度回调,表单上传(多文件和多参数一起上传),链式调用,整合Gson,自动解析返回对象,支持Https和自签名证书,支持cookie自动管理,扩展了统一的上传管理和下载管理功能. //download the new app private void downLoadNewApp(NewVersion.XianzaishiRfBean version) { if (StringUtils.isEmpt

Android ViewPagerIndicator详解及实例代码

Android ViewPagerIndicator详解及实例代码 关于自定义View的属性零碎知识 自定义View和自定义属性的知识不再此提及,这里着重说的是属性在自定义View中的获取方式,自定义的属性如下: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="Wisely"> <attr name=&

Android 动态添加Fragment的实例代码

1.fragment1布局及代码 布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&quo