准备工作:设置 调用相机的回调码 和 设置 调用照相机拍照后保存图片的位置,名称,及后缀名(图片类型) private int xiangji=3;
private File sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");
在button监听器中调用相机:
//调用系统照相机拍照
bt4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri u=Uri.fromFile(sdcardTempFile);
intent.putExtra(MediaStore.Images.Media.ORIENTATION, 0);
intent.putExtra(MediaStore.EXTRA_OUTPUT, u);
intent.putExtra("return-data", true);
startActivityForResult(intent, xiangji);
}
});
回调函数中接收图片:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
System.out.println("requestCode"+requestCode);
switch (requestCode){
case 2:
Uri tuku_uri = data.getData();
System.out.println(tuku_uri.getPath());
ContentResolver tuku_cr = this.getContentResolver();
try {
bmp = BitmapFactory.decodeStream(tuku_cr.openInputStream(tuku_uri));
MCShareLaunchShareHelper.shareContentWithBitmap("测试分享本地图片", bmp, "your share url", "", MoxunActivity.this);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
case 3:
try {
Uri xiangji_uri = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), sdcardTempFile.getAbsolutePath(), null, null));
System.out.println(xiangji_uri.getPath());
ContentResolver xiangji_cr = this.getContentResolver();
bmp = BitmapFactory.decodeStream(xiangji_cr.openInputStream(xiangji_uri));
MCShareLaunchShareHelper.shareContentWithBitmap("测试照相机图片", bmp, "your share url", "", MoxunActivity.this);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
}
}
}
注意事项:调用相机和调用图库有所不同,就是相机是横屏显示,所以拍照完成后,你的Activity会重绘,这时你的回调函数就接收不到刚才拍到的照片,所以需要在AndroidManifest.xml中配置你的Activiy,禁用重绘 <!--
android:screenOrientation="landscape" 横屏
android:screenOrientation="portrait" 竖屏
android:configChanges="orientation|keyboardHidden" 旋转屏幕后不重绘Activity
-->
<activity
android:configChanges="orientation|keyboardHidden"
android:name="MCShareAppActivity"
android:screenOrientation="portrait" />
分享到:
相关推荐
安卓开发-Android代码调用C++代码和C++代码调用Android代码.zip.zip
delphi xe6 android 调用照相机摄像头拍照片,简单非常实用的原代码,无特定组件,真机调试没问题.
android 调用系统照相机功能 ,包括摄像机视频调用
android 调用照相机拍照,其中对对焦进行了一定的优化
android调用照相机,非常好用,可以实现调用手机自带德相机进行操作
安卓Android源码——调用C++代码和C++代码调用源码.zip
Android调用系统照相机并保存
RN与android混合开发及RN调用原生方法
一个android调用c和c++的应用实例,附带源代码
android JS与java代码相互调用Demo,简单易懂的Demo。包括了java调用js方法。js调用java代码。记得js调用java的方法不能处理主线程UI。
应开发需要,不想调用第三方库实现功能。调用系统相机拍照,系统相册进行多选。注意多选照片时要长按一张图片变为多选。
调用C代码和C代码调用源码.zip
android 系统调用WPS打开word excel ppt pdf 等,将代码类移入的你项目,有对6.0 7.0及以上系统做文件读取方法
《Android开发案例驱动教程》 配套代码。 注: 由于第12,13,14章代码太大,无法上传到一个包中。 这三节代码会放到其他压缩包中。 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式...
主要介绍了android调用C语言实现内存的读取与修改的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
delphi xe5 android 调用照相机摄像头拍照片camera,简单非常实用的原代码,无特定组件!
第一步必须加入调用摄像头硬件的权限,拍完照后我们要将图片保存在SD卡中,必须加入SD卡读写权限,所以第一步,我们应该在Android清单文件中加入以下代码 摄像头权限: <uses android:name=android.permission....
调用系统照相机代码 并保存图片到sd卡 然后再可以调用到listview中 实现分类管理
使用android studio调用AP接口判断登录注册是否成功