Android 有可能这样做吗?从选择图像到拍摄图像

Android 有可能这样做吗?从选择图像到拍摄图像,android,android-camera,android-camera-intent,android-camera2,Android,Android Camera,Android Camera Intent,Android Camera2,是否可以捕获图像并在imageview上显示,而无需保存在手机上?最好从API级别18开始工作。当前我的代码: private void ImageSelection() { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(intent, IMAGE_REQUEST

是否可以捕获图像并在imageview上显示,而无需保存在手机上?最好从API级别18开始工作。当前我的代码:

private void ImageSelection()
{
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(intent, IMAGE_REQUEST);

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == IMAGE_REQUEST && resultCode == RESULT_OK && data != null)
    {
        Uri FilePath = data.getData();
        try {

            bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), FilePath);
            mImageView.setImageBitmap(bitmap);
            mImageView.setVisibility(View.VISIBLE);
            mEditText.setVisibility(View.VISIBLE);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
        if (TextUtils.isEmpty(mEditText.getText())){
            mEditText.setError("Must!");
        }

}

使用照相机应用程序拍照

Android将操作委派给其他应用程序的方式是调用一个意图,该意图描述了您希望完成的操作。这个过程包括三个部分:

  • 意图本身
  • 启动外部活动的调用
  • 一些代码用于在焦点返回到活动时处理图像数据
  • 这里有一个函数,它调用一个意图来捕获一张照片

    static final int REQUEST_IMAGE_CAPTURE = 1;
    
    private void dispatchTakePictureIntent() {
        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
            startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
        }
    }
    
    请注意,startActivityForResult()方法受一个调用resolveActivity()的条件保护,该条件返回第一个可以处理该意图的活动组件。执行此检查很重要,因为如果您使用任何应用程序都无法处理的意图调用startActivityForResult(),您的应用程序将崩溃。因此,只要结果不为null,就可以安全地使用intent

    获取缩略图

    如果拍照这一简单的壮举并不是你的应用程序雄心壮志的顶点,那么你可能想从相机应用程序中获取图像并对其进行处理

    Android摄像头应用程序将发送给onActivityResult()的返回意图中的照片编码为extras中“data”键下的小位图。以下代码检索此图像并将其显示在ImageView中

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
            Bundle extras = data.getExtras();
            Bitmap imageBitmap = (Bitmap) extras.get("data");
            mImageView.setImageBitmap(imageBitmap);
        }
    }
    
    为了得到更好的理解


    希望这有帮助。

    好吧,这是可能的,但您只能收到低缩略图质量的图像。这是你想要的吗?如果是这样的话,看看这个答案:是的,稍后我们可以在qualityHmm上工作,我想我可以上传我的图像,如果我把它改成捕获图像的话。你能帮我上传图片吗?要将图片上传到服务器,你需要启用多部分,然后执行Post请求。请参阅本文,它会从该imageview上载吗?您可以从存储器中获取图像,然后将其作为多部分上载到服务器。试着参考我分享的链接,你会得到更好的理解。如果你想要更多的描述,我建议你发布一个不同的问题