标签: android-camera-intent

android camera:onActivityResult()如果有额外的,则intent为null

在Stack Overflow中搜索了所有相关问题但没有找到任何内容后,请尽量帮助我.

我创建了捕获图片的意图.然后我看到了不同的行为onActivityResult():如果我没有在Intent中添加任何额外的内容(对于小图片)onActivityResult中的Intent是可以的,但是当我在将pic写入文件的意图中添加额外内容时,onActivityResult中的意图是null!

意图创作:

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// without the following line the intent is ok
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
startActivityForResult(takePictureIntent, actionCode);
Run Code Online (Sandbox Code Playgroud)

为什么它为空,我该如何解决?

android android-camera-intent

37
推荐指数
1
解决办法
3万
查看次数

拍摄肖像时,Android相机意图保存图像风景

我看了一下,但似乎没有一个坚实的答案/解决方案,非常恼人的问题.

我以纵向拍摄照片,当我点击保存/放弃时,按钮的方向也正确.问题是,当我稍后检索图像时,它是横向的(图片已逆时针旋转90度)

我不想强迫用户以特定方向使用相机.

有没有办法可以检测照片是以纵向模式拍摄,然后解码位图并以正确的方式翻转它?

android android-intent android-camera android-camera-intent

37
推荐指数
1
解决办法
3万
查看次数

从相机捕获时图像/图像质量低

我有一个问题.当我试图从相机拍摄照片时,质量非常低.首先,使用相机拍摄图片,而不是保存到目录,同时获取该图片并在我的应用程序中显示.目录中保存的图片质量很好但是当我从目录中获取时,质量很低.下面是我的示例代码:

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == CAMERA_PIC_REQUEST) {  

        Bitmap thumbnail = (Bitmap) intent.getExtras().get("data");

        if (g==1)
        {
            ImageView myImage = (ImageView) findViewById(R.id.img5);
            myImage.setImageBitmap(thumbnail);

            View a = findViewById(R.id.img5);
            a.setVisibility(View.VISIBLE);

            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, stream);

            byteArray1 = stream.toByteArray();
        }
}
Run Code Online (Sandbox Code Playgroud)

任何解决方案/建议?谢谢 :)

解决了

当我按照下面的Antrromet给出的代码时,问题就解决了

android android-camera-intent

36
推荐指数
2
解决办法
6万
查看次数

如何捕获图像并使用本机Android相机存储它

我在捕获图像并将其存储在本机相机应用程序时遇到问题.以下是我的一些代码示例.

_path = Environment.getExternalStorageDirectory() + "make_machine_example.jpg";
File file = new File( _path );
Uri outputFileUri = Uri.fromFile( file );

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );

startActivityForResult( intent, 0 );
Run Code Online (Sandbox Code Playgroud)

拍完照片后我又回到原来的活动中,当我通过Android DDMS文件浏览器导航到我的SD卡时,图片不存在.任何人都知道为什么没有得救?

camera android android-intent android-camera android-camera-intent

35
推荐指数
3
解决办法
5万
查看次数

通过意图拍照后调用的活动已被杀死/ onCreate

我试图用意图拍照.我的问题是,有时在拍照后我的活动(调用startActivityForResult)似乎被破坏,以便再次调用onCreate.

这是我点击图片浏览后拍照的代码,应替换哪个图片:

if (!getPackageManager().hasSystemFeature(
                PackageManager.FEATURE_CAMERA)) {
            Util.makeLongToast(R.string.lang_no_camera);
        } else {
            Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(intent, TAKE_ITEM_PHOTO);
        }
Run Code Online (Sandbox Code Playgroud)

...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.v(TAG, "onactivityresult called");
    if (requestCode == TAKE_ITEM_PHOTO) {
        if (data != null) {

            imageUri = data.getData();


                try {
                    img_photo.setImageBitmap(Media.getBitmap(
                            getContentResolver(), imageUri));
            } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

        } else
            Log.w(TAG, "data is null");
    } …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-camera-intent android-activity

32
推荐指数
1
解决办法
1万
查看次数

android camera:将结果ResultInfo {who = null,request = 0,result = -1,data = null}传递给activity

我真的很沮丧地解决了我的问题,我有一个使用相机的应用程序,当相机拍摄照片时,它会显示在活动上,当我不使用cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mPhotoUri);照片时会显示活动,但名称和路径文件不是喜欢我想要的.我正在使用galaxy选项卡进行编译,我已经按照教程从这里解决了我的问题,这里这里但我的应用程序仍然强制关闭和错误,这是我的代码:

{

                File sdCard= Environment.getExternalStorageDirectory();
                File path = new File (sdCard.getAbsolutePath() + "/android/data/spaj_foto");
                path.mkdir();
                File file= new File (path,"spaj_foto.png");
                String filePath ="/android/data/spaj_foto/spaj_foto.png";

                  try {
                      file.createNewFile();
                    } catch (IOException e) {}       


                 mPhotoUri = Uri.fromFile(file); 
                 values.put( MediaStore.Images.ImageColumns.DATA, file.getPath());
                 mPhotoUri=getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);

                  Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
                  cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, mPhotoUri);
                  startActivityForResult(cameraIntent,TAKE_PHOTO_CODE );  

            }
Run Code Online (Sandbox Code Playgroud)

activityresult方法:

@Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            if (requestCode == TAKE_PHOTO_CODE && resultCode == RESULT_OK) {
                Bitmap photo = …
Run Code Online (Sandbox Code Playgroud)

java android uri android-camera-intent

28
推荐指数
3
解决办法
5万
查看次数

如何压缩图像大小?

我想使用android camera api以低分辨率捕获图像,但是当我捕获图像时,它将采用设备相机的默认分辨率.所以我想在捕获时捕获低分辨率或小尺寸的图像,或者如何将大图像压缩成android中的小尺寸?

android image-compression android-camera android-camera-intent

26
推荐指数
4
解决办法
8万
查看次数

从ACTION_IMAGE_CAPTURE Intent获取图像路径

嗨我ACTION_IMAGE_CAPTURE用于捕获图像使用Intent如下:

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(
MediaStore.EXTRA_OUTPUT, (new File(Environment.getExternalStorageDirectory(),
String.valueOf(System.currentTimeMillis()) + ".jpg"))
);
startActivityForResult(cameraIntent, 0);
Run Code Online (Sandbox Code Playgroud)

我需要将图像存储在SD卡中,并使用该onActivityResult方法检索该图像的路径.我不知道如何获取当前捕获图像的图像路径.

如果有人知道请帮助.

谢谢

camera android android-camera android-camera-intent

23
推荐指数
2
解决办法
4万
查看次数

查询 ACTION_IMAGE_CAPTURE 的意图时,Android 11 (R) 返回空列表

设备:模拟器像素 3a - Android 11

代码:

    final List<Intent> cameraIntents = new ArrayList<Intent>();
    final Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    final List<ResolveInfo> listCam = 
    context.getPackageManager().queryIntentActivities(captureIntent, 0);
Run Code Online (Sandbox Code Playgroud)

使用时:

targetSdkVersion 30
compileSdkVersion 30
Run Code Online (Sandbox Code Playgroud)

listCam 大小为 0

当更改为:

compileSdkVersion 29
Run Code Online (Sandbox Code Playgroud)

listCam 大小为 1 - 应该如此。

使用以下代码:

    val captureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    baseActivity.startActivity(captureIntent)
Run Code Online (Sandbox Code Playgroud)

工作正常并显示相机应用程序。

知道为什么 queryIntentActivities 不返回相机意图吗?

谢谢!

android android-intent android-camera android-camera-intent android-intent-chooser

23
推荐指数
3
解决办法
1万
查看次数

android减少摄像头捕获图像的文件大小小于500 kb

我的要求是将摄像头捕获的图像上传到服务器,但它应该小于500 KB.如果它大于500 KB,则需要将其减小到小于500 KB的大小(但稍微接近它)

为此,我使用以下代码 -

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
            super.onActivityResult(requestCode, resultCode, data);
            if (resultCode == getActivity().RESULT_OK) {

                    if (requestCode == REQUEST_CODE_CAMERA) {

                        try {

                            photo = MediaStore.Images.Media.getBitmap(
                                    ctx.getContentResolver(), capturedImageUri);
                            String selectedImagePath = getRealPathFromURI(capturedImageUri);

                            img_file = new File(selectedImagePath);

                            Log.d("img_file_size", "file size in KBs (initially): " + (img_file.length()/1000));

                            if(CommonUtilities.isImageFileSizeGreaterThan500KB(img_file)) {
                                photo = CommonUtilities.getResizedBitmapLessThan500KB(photo, 500);
                            }
                            photo = CommonUtilities.getCorrectBitmap(photo, selectedImagePath);


//  // CALL THIS METHOD TO GET THE URI FROM THE BITMAP

                            img_file …
Run Code Online (Sandbox Code Playgroud)

android image filesize android-camera-intent onactivityresult

21
推荐指数
1
解决办法
9897
查看次数