首页 > 解决方案 > 实现相机意图和缓存有多难?

问题描述

目前正在学习如何制作应用程序。

有一个想法,但我不知道该怎么做或去哪里找。我正在考虑制作一个按钮来打开相机(完成)并拍照,然后上传。我发现了几个示例如何在不保存的情况下上传,但图像质量很差。

我需要的:

我做了什么:

我不知道camere现在是否可以工作,因为我在其他项目上进行了测试,所以目前正在努力使其在这个项目上工作。

mCapture.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent photoCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(photoCaptureIntent, request);
        }
    });

代码

标签: android

解决方案


创建了一个上传方法,在图片上传到 Firebase 后,它将删除保存的临时图片。

这是我的上传方法:

 private void UploadImage() {


    if(filePath != null)
    {
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Įkeliama...");
        progressDialog.show();

        StorageReference ref = storageReference.child("images/"+ staticSpinner.getSelectedItem().toString().trim()+"_"+ mEditText.getText().toString());
        ref.putFile(filePath)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        progressDialog.dismiss();
                        Toast.makeText(MainActivity.this, "Įkelta", Toast.LENGTH_SHORT).show();
                        mImageView.setImageResource(0);
                        mImageView.setVisibility(View.GONE);
                        mEditText.setText("");
                        mEditText.setVisibility(View.GONE);
                        staticSpinner.setVisibility(View.GONE);
                        mCapture.setVisibility(View.VISIBLE);
                        mChoose.setVisibility(View.VISIBLE);
                        mUpload.setVisibility(View.GONE);
                        photoFile = new File(String.valueOf(photoFile));
                        photoFile.delete();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        progressDialog.dismiss();
                        Toast.makeText(MainActivity.this, "Įkelti nepavyko "+e.getMessage(), Toast.LENGTH_SHORT).show();
                        mImageView.setImageResource(0);
                        mImageView.setVisibility(View.GONE);
                        mEditText.setText("");
                        mEditText.setVisibility(View.GONE);
                        staticSpinner.setVisibility(View.GONE);
                        mCapture.setVisibility(View.VISIBLE);
                        mChoose.setVisibility(View.VISIBLE);
                        mUpload.setVisibility(View.GONE);
                        photoFile = new File(String.valueOf(photoFile));
                        photoFile.delete();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
                                .getTotalByteCount());
                        progressDialog.setMessage("Įkelta "+(int)progress+"%");
                    }
                });
    }

    else if(photoFile != null)
    {
        final ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.setTitle("Įkeliama...");
        progressDialog.show();

        StorageReference ref = storageReference.child("images/"+ staticSpinner.getSelectedItem().toString().trim()+"_"+ mEditText.getText().toString());
        ref.putFile(Uri.fromFile(photoFile))
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        progressDialog.dismiss();
                        Toast.makeText(MainActivity.this, "Įkelta sėkmingai", Toast.LENGTH_SHORT).show();
                        mImageView.setImageResource(0);
                        mImageView.setVisibility(View.GONE);
                        mEditText.setText("");
                        mEditText.setVisibility(View.GONE);
                        staticSpinner.setVisibility(View.GONE);
                        mCapture.setVisibility(View.VISIBLE);
                        mChoose.setVisibility(View.VISIBLE);
                        mUpload.setVisibility(View.GONE);
                        photoFile = new File(String.valueOf(photoFile));
                        photoFile.delete();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        progressDialog.dismiss();
                        Toast.makeText(MainActivity.this, "Įkelti nepavyko "+e.getMessage(), Toast.LENGTH_SHORT).show();
                        mImageView.setImageResource(0);
                        mImageView.setVisibility(View.GONE);
                        mEditText.setText("");
                        mEditText.setVisibility(View.GONE);
                        staticSpinner.setVisibility(View.GONE);
                        mCapture.setVisibility(View.VISIBLE);
                        mChoose.setVisibility(View.VISIBLE);
                        mUpload.setVisibility(View.GONE);
                        photoFile = new File(String.valueOf(photoFile));
                        photoFile.delete();
                    }
                })
                .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        double progress = (100.0*taskSnapshot.getBytesTransferred()/taskSnapshot
                                .getTotalByteCount());
                        progressDialog.setMessage("Įkelta "+(int)progress+"%");
                    }
                });
    }


}

推荐阅读