【问题标题】:Using Camera and storing captured result in SDCard in android在 android 中使用相机并将捕获的结果存储在 SDCard 中
【发布时间】:2010-08-30 19:50:58
【问题描述】:

我想制作一个我想使用相机的应用程序,因为在捕获图像后,我想将该图像存储在 SDCard 中并在屏幕上显示该图像。

谁能帮帮我...

谢谢

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以使用以下方法调用系统摄像头:

    private void startCameraActivity() {
        File file = new File("/sdcard/test/test.jpg");
        Uri outputFileUri = Uri.fromFile(file);
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        startActivityForResult(intent, REQUEST_CODE_CAMERA);
    }
    

    调用完成后,会得到图片使用onActivityResult:

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.i("MakeMachine", "requestCode:"+requestCode + ",resultCode: " + resultCode);
        switch(requestCode){
            case ModifyUserActivity.REQUEST_CODE_CAMERA:
                switch (resultCode) {
                    case Activity.RESULT_CANCELED:
                        picFileName = null;
                        Log.i("MakeMachine", "User cancelled");
                        break;
                    case Activity.RESULT_OK:                
                        File file = new File("/sdcard/test/test.jpg");
                        if(file.exists()){
                            BitmapFactory.Options options = new BitmapFactory.Options();
                            options.inSampleSize = 4;
                            Bitmap bitmap = BitmapFactory.decodeFile(picFileName, options);
                            imgTakePhoto.setImageBitmap(bitmap);
                            imgTakePhoto.setVisibility(View.VISIBLE);
                        }
                        break;
                    default:
                        break;
                }
                break;
            default:
                break;
        }
    
    }
    

    【讨论】:

      【解决方案2】:

      使用ACTION_IMAGE_CAPTURE意图启动Camera Activity:

      Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
      startActivityForResult( intent, 0 );
      

      这里有一个详细的例子:http://labs.makemachine.net/2010/03/simple-android-photo-capture/,我认为它适合您的问题,即捕获图像,将其存储在 sd-card 中,然后在 imageview 中显示图像。

      享受!!!

      【讨论】:

      • @rakesh yeh 很高兴您的回复
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      相关资源
      最近更新 更多