记一下点击图片跳转到手机拍照或图库页面
2016-06-17 11:25
363 查看
//从图库选图的intent
Intent i1 = new Intent(Intent.ACTION_PICK);
i1.setDataAndType(Images.Media.EXTERNAL_CONTENT_URI, "image/*");
//从相机拍照的intent
Intent i2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File camerFile = new File(file,System.currentTimeMillis()+".jpg");
Uri value = Uri.fromFile(camerFile);
i2.putExtra(MediaStore.EXTRA_OUTPUT, value);
//把俩个intent“凑成”一个intent发送
Intent intent = Intent.createChooser(i1, "选择头像");
intent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{i2});
//把凑成的intent发送出去
startActivityForResult(intent, 100);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==100 && resultCode==RESULT_OK){
if(data==null){
//拍照返回的
}else{
//图库选择返回的
//content://media/XXXX
Uri uri = data.getData();
ivAvatar.setImageURI(uri);
//要找到uri对应的文件在SD卡上的绝对路径
//ContentResolver去数据库查询
ContentResolver cr = getContentResolver();
Cursor c = cr.query(uri, new String[]{Images.Media.DATA}, null, null, null);
c.moveToNext();
path = c.getString(0);
c.close();
Log.d("TAG", "uri:-->"+uri.toString()+", 绝对路径:-->"+path);
}
}
}
相关文章推荐
- Android环境搭建
- tabelayout,GridLayout的一些基础属性
- android ui的几个概念:px,dip(dp),sp,dpi,分辨率等
- view viewGroup
- java
- Context相关的内存泄露
- Android经典例子收藏笔记1
- EventBus 使用详解(一)——初步使用 EventBus
- Android开发笔记
- 绘制饼状图
- Reclerview下拉刷新,上拉加载更多
- 带有源码的apk预置到系统
- Android开发艺术探讨精华(完结)
- Android学习笔记第三篇--多媒体
- Android学习笔记第二篇--分享数据
- android获取屏幕分辨率的两种方式
- 消息机制(Message等)
- Android的MediaPlayer笔记
- 笔记(活动(activity)之间的通信)
- Android笔记