-
接三 3)为了解决“onActivityResult里面获取回来的是图片实际上是缩略图”的问题,设置拍照文件存储路径,然后从自己存储的路径来取得照片。注意:Uri是android.net而不是Java.net mFilePath = Environment.getExternalStorageDirectory().getPath();//获取系统SD卡路径 mFilePath = mFilePath + "/"+"temp.png"; //mFilePath为SD卡路径+我们自定义的文件名 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); Uri uri = Uri.fromFile(new File(pathFile)); //将Uri指向创建的文件对象 intent.putExtra(MediaStore.EXTRA_OUTPUT,uri); //更改拍照文件存储路径 startActivityForResult(intent, CAREMA_REQUEST_CODE_2); 在onActivityResult中添加 if (requestCode == CAMERA_REQUEST_CODE){ *** }else if(requestCode == CAMERA_REQUEST_CODE_2){ //从自己存储的路径来取得照片 FileInputStream files = new FileInputStream(mFilePath); Bitmap bitmap = BitmapFactory.decodeStream(files); //通过BitmapFactory.decodeStream方法将文件输入流解析成Bitmap mImageView.setImageBitmap(bitmap); } 注意: 1)关闭流对象 files.close(); 2)文件操作基本都需要捕获异常 3)增加SD卡读写权限查看全部
-
三、调用系统相机,获取拍摄图片显示在imageView中 1)使用startActivityForResult() 2)覆写onActivityResult函数,处理返回来的数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK){ if (requestCode == CAMERA_REQUEST_CODE){ Bundle bundle = data.getExtras();//取出相机返回的所有信息,即图片的二进制流 Bitmap bitmap = (Bitmap) bundle.get("data"); //转换成bitmap mImageView.setImageBitmap(bitmap); } } } 注意:onActivityResult里面获取回来的是图片实际上是缩略图查看全部
-
二、接着一 public void startCamera(View view){ if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)!= PackageManager.PERMISSION_GRANTED){ //申请权限 ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CAMERA},CAMERA_REQUEST_CODE); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == CAMERA_REQUEST_CODE){ if (grantResults[0] == PackageManager.PERMISSION_GRANTED){ //权限通过 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(intent); }else { Toast.makeText(this, "Permission issue", Toast.LENGTH_SHORT).show(); } } } Manifest文件中加入: <uses-permission android:name="android.permission.CAMERA"/>查看全部
-
一、调用系统相机 使用隐式Intent来启动系统camera Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivity(intent); 使自己的应用也可以接收启用相机功能 在本应用的activity中添加如下intent-filter <intent-filter> <action android:name="android.media.action.IMAGE_CAPTURE"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> 这样自己的应用就具有了系统相机同样的功能。和系统应用一样都可以收到启动相机功能的intent 注意:使用新的app想调用相机功能时,android 6.0版本不仅需要在代码中做运行时权限处理,而且在Manifest文件中同样需要加入权限申请,查看全部
-
通过本课可以学到: 1.Android系统相机的调用(Intent) 2.自定义Android相机 3.学习自定义控件的使用 在App中使用Camera的两种方式: 1)调用系统相机、或者是具有相机功能的应用 2)自定义相机查看全部
-
相机查看全部
-
阿萨德查看全部
-
Camera在App中使用的两种方式i查看全部
-
调用相机,展示照片查看全部
-
原图查看全部
-
启动相机查看全部
-
应用具有系统相机功能查看全部
-
应用具有系统相机同样功能查看全部
-
Camera 调用系统相机 1使用系统Intent ACTION_IMAGE-CAPTURE查看全部
-
龙查看全部
举报
0/150
提交
取消