您的位置:首页 > 移动开发 > Android开发

Android开发 调用照相机实现代码和注意事项

2015-05-22 22:02 295 查看
转自:http://blog.csdn.net/onlyonecoder/article/details/8463799/

准备工作:设置 调用相机的回调码 和 设置 调用照相机拍照后保存图片的位置,名称,及后缀名(图片类型)

[java] view
plaincopy





private int xiangji=3;  

rivate  File sdcardTempFile = new File("/mnt/sdcard/", "tmp_pic_" + SystemClock.currentThreadTimeMillis() + ".jpg");  

在button监听器中调用相机:

[java] view
plaincopy





//调用系统照相机拍照  

    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);   

  

        }  

    });  

[java] view
plaincopy





  

回调函数中接收图片:

[java] view
plaincopy<
11370
a href="https://code.csdn.net/snippets/337283" title="在CODE上查看代码片" style="color:rgb(160,160,160);text-decoration:none;border:none;padding:1px;margin:0px 10px 0px 0px;font-size:9px;display:inline-block;background-color:inherit;">





@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();  

                }  

//方法二  

//if (requestCode == MyApp.CAMERA_RECODE) {  

//              try {  

//                  bmp=BitmapFactory.decodeFile(sdcardTempFile.getAbsolutePath());  

//                  img.setImageBitmap(bmp);  

//                  picCount++;  

//              } catch (Exception e) {  

//                  e.printStackTrace();  

//              }  

//  

//              break;  

//          }  

//    }  

  

    }   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: