android 调用系统相机和图库 实例详解
来源:互联网 发布:高校教材数据库 编辑:程序博客网 时间:2024/05/22 03:22
android 调用系统的照相机和图库实例详解
android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分享,有需求的朋友可以参考下
<iframe id="cproIframe_u91397" width="300" height="250" src="http://pos.baidu.com/acom?adn=3&at=103&aurl=&cad=1&ccd=32&cec=GBK&cfv=11&ch=0&col=zh-CN&conOP=0&cpa=1&dai=2&dis=0&ltr=http%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26tn%3Dbaidu%26wd%3Dandroid%2520%25E8%25B0%2583%25E7%2594%25A8%25E7%259B%25B8%25E6%259C%25BA%2520%25E5%259B%25BE%25E5%25BA%2593%26rsv_enter%3D1%26oq%3Dandroid%2520%26inputT%3D32558%26rsv_sug3%3D51%26rsv_sug4%3D2127%26rsv_sug1%3D41%26rsv_sug2%3D0%26bs%3Dandroid%2520%25E5%259B%25BE%25E5%25BA%2593&ltu=http%3A%2F%2Fwww.jb51.net%2Farticle%2F32939.htm&lunum=6&n=jb51_cpr&pcs=1709x787&pis=10000x10000&ps=522x1009&psr=1920x1080&pss=1709x772&qn=df39f13cc5bcbc8c&rad=&rsi0=300&rsi1=250&rsi5=4&rss0=%23FFFFFF&rss1=%23F7FCFF&rss2=%23006699&rss3=%23333333&rss4=%23333333&rss5=&rss6=%23e10900&rss7=&scale=&skin=&td_id=91397&tn=text_default_300_250&tpr=1411002115245&ts=1&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u91397" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true"></iframe>
android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分享,第一次写博客希望各位大神多多批评。
首先上一段调用android相册和相机的代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//调用android自带的照相机
photoUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
startActivityForResult(intent, 1);
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//调用android的图库
startActivityForResult(i, 2);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//完成照相后回调用此方法
super.onActivityResult(requestCode, resultCode, data);
case 1:
switch (resultCode) {
case Activity.RESULT_OK://照相完成点击确定
String sdStatus = Environment.getExternalStorageState();
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
Log.v("TestFile", "SD card is not avaiable/writeable right now.");
return; }
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
FileOutputStream b = null;
File file = new File("/sdcard/pk4fun/");
file.mkdirs();// 创建文件夹,名称为pk4fun // 照片的命名,目标文件夹下,以当前时间数字串为名称,即可确保每张照片名称不相同。网上流传的其他Demo这里的照片名称都写死了,则会发生无论拍照多少张,后一张总会把前一张照片覆盖。细心的同学还可以设置这个字符串,比如加上“IMG”字样等;然后就会发现sd卡中myimage这个文件夹下,会保存刚刚调用相机拍出来的照片,照片名称不会重复。
String str = null;
Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");// 获取当前时间,进一步转化为字符串
date = new Date(resultCode);
str = format.format(date);
String fileName = "/sdcard/myImage/" + str + ".jpg";
sendBroadcast(fileName);
try {
b = new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
}
} break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
case 2:
switch (resultCode) {
case Activity.RESULT_OK: {
Uri uri = data.getData();
Cursor cursor = mActivity.getContentResolver().query(uri, null,
null, null, null);
cursor.moveToFirst();
String imgNo = cursor.getString(0); // 图片编号
String imgPath = cursor.getString(1); // 图片文件路径
String imgSize = cursor.getString(2); // 图片大小
String imgName = cursor.getString(3); // 图片文件名
cursor.close();
// Options options = new BitmapFactory.Options();
// options.inJustDecodeBounds = false;
// options.inSampleSize = 10;
// Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);
}
break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
}
首先上一段调用android相册和相机的代码:
复制代码代码如下:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);//调用android自带的照相机
photoUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
startActivityForResult(intent, 1);
复制代码代码如下:
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//调用android的图库
startActivityForResult(i, 2);
复制代码代码如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//完成照相后回调用此方法
super.onActivityResult(requestCode, resultCode, data);
case 1:
switch (resultCode) {
case Activity.RESULT_OK://照相完成点击确定
String sdStatus = Environment.getExternalStorageState();
if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
Log.v("TestFile", "SD card is not avaiable/writeable right now.");
return; }
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式
FileOutputStream b = null;
File file = new File("/sdcard/pk4fun/");
file.mkdirs();// 创建文件夹,名称为pk4fun // 照片的命名,目标文件夹下,以当前时间数字串为名称,即可确保每张照片名称不相同。网上流传的其他Demo这里的照片名称都写死了,则会发生无论拍照多少张,后一张总会把前一张照片覆盖。细心的同学还可以设置这个字符串,比如加上“IMG”字样等;然后就会发现sd卡中myimage这个文件夹下,会保存刚刚调用相机拍出来的照片,照片名称不会重复。
String str = null;
Date date = null;
SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");// 获取当前时间,进一步转化为字符串
date = new Date(resultCode);
str = format.format(date);
String fileName = "/sdcard/myImage/" + str + ".jpg";
sendBroadcast(fileName);
try {
b = new FileOutputStream(fileName);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
try {
b.flush();
b.close();
} catch (IOException e) {
e.printStackTrace();
}
} break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
case 2:
switch (resultCode) {
case Activity.RESULT_OK: {
Uri uri = data.getData();
Cursor cursor = mActivity.getContentResolver().query(uri, null,
null, null, null);
cursor.moveToFirst();
String imgNo = cursor.getString(0); // 图片编号
String imgPath = cursor.getString(1); // 图片文件路径
String imgSize = cursor.getString(2); // 图片大小
String imgName = cursor.getString(3); // 图片文件名
cursor.close();
// Options options = new BitmapFactory.Options();
// options.inJustDecodeBounds = false;
// options.inSampleSize = 10;
// Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);
}
break;
case Activity.RESULT_CANCELED:// 取消
break;
}
break;
}
0 0
- android 调用系统相机和图库 实例详解
- Android调用系统相机和图库
- android 调用系统的照相机和图库实例详解
- android 调用系统的照相机和图库实例详解
- android 调用系统的照相机和图库实例详解
- 调用系统相机和图库
- 调用系统图库和相机
- android 系统4.4调用本地图库和系统相机
- android 调用系统图库和相机设置头像
- Android 调用系统相机和图库,裁剪图片
- Android调用系统图库和相机获取图片并裁剪
- Android调用系统相机与图库
- 调用系统相机和图库,裁剪图片
- 安卓调用系统图库和相机
- android调用系统相机,系统图库,系统剪裁图片
- Android调用系统相机和自定义相机实例
- Android调用相机拍照并返回路径和调用系统图库选择图片
- Android调用相机拍照并返回路径和调用系统图库选择图片
- 日期操作
- 【转】SIMCOM的AT指令
- 英语单词state和status的区别
- Android学习第一课
- Thread和Service应用场合的区别
- android 调用系统相机和图库 实例详解
- Linux 环境下C
- iOS 苹果app提交 ITC.apps.validation.prerelease_build_missing
- Vision引擎中地形和 2D 概览地图介绍
- WPF与Prism一并学习(五)
- spring security3教程系列--如何踢出用户
- 对进程地址空间的一点认识
- Shell选项处理
- Linux网络编程必看书籍推荐
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
连杆螺栓
螺栓材质
防松螺栓
螺栓加热棒
螺栓孔
铜螺栓
调节螺栓
螺栓等级
热镀锌螺栓
蝴蝶螺栓
汽车螺栓
螺栓螺母
鱼尾螺栓
螺栓型号
机械螺栓
全螺纹螺栓
螺栓球节点
焊接螺栓
勾头螺栓
螺栓套丝机
螺栓松动剂
偏心螺栓
螺栓标准件
u型螺栓图片
螺栓标准
埋头螺栓
u型螺栓报价
u型螺栓加工
紧固螺栓
骑马螺栓
t形螺栓
达克罗螺栓
螺栓长度
螺栓扭矩
螺栓价格表
螺栓是什么
顶爆螺栓
爆炸螺栓
螺栓保护套
螺栓画法
螺栓预紧力