标签: android-camera

setDisplayOrientation示例代码是否正确?

Camera.setDisplayOrientation 的文档页面包含以下代码示例,声明使用它将"使摄像机图像以与显示相同的方向显示":

 public static void setCameraDisplayOrientation(Activity activity,
         int cameraId, android.hardware.Camera camera) {
     android.hardware.Camera.CameraInfo info =
             new android.hardware.Camera.CameraInfo();
     android.hardware.Camera.getCameraInfo(cameraId, info);
     int rotation = activity.getWindowManager().getDefaultDisplay()
             .getRotation();
     int degrees = 0;
     switch (rotation) {
         case Surface.ROTATION_0: degrees = 0; break;
         case Surface.ROTATION_90: degrees = 90; break;
         case Surface.ROTATION_180: degrees = 180; break;
         case Surface.ROTATION_270: degrees = 270; break;
     }

     int result;
     if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
         result = (info.orientation + degrees) % 360;
         result = (360 - result) % 360;  // …
Run Code Online (Sandbox Code Playgroud)

android screen-orientation android-camera

17
推荐指数
1
解决办法
6109
查看次数

android相机预览错误的宽高比

我根据教程创建了一个相机应用程序.我使用的预览类来自api-Demos"CameraPreview".我从这里添加了一个修改(预览总是旋转90°).这就是我设置预览大小的方法:

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
    // Now that the size is known, set up the camera parameters and begin
    // the preview.
    Camera.Parameters parameters = mCamera.getParameters();
    Display display = ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();

    if (display.getRotation() == Surface.ROTATION_0) {
        parameters.setPreviewSize(mPreviewSize.height, mPreviewSize.width);
        mCamera.setDisplayOrientation(90);
    }

    if (display.getRotation() == Surface.ROTATION_90) {
        parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
    }

    if (display.getRotation() == Surface.ROTATION_180) {
        parameters.setPreviewSize(mPreviewSize.height, mPreviewSize.width);
    }

    if (display.getRotation() == Surface.ROTATION_270) {
        parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
        mCamera.setDisplayOrientation(180);
    }
    parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);

    requestLayout();

    mCamera.setParameters(parameters);
    mCamera.startPreview();
} …
Run Code Online (Sandbox Code Playgroud)

android android-camera

17
推荐指数
2
解决办法
3万
查看次数

如何从片段中获取onActivityResult的结果?

我已经Navigation drawer在每个项目中使用了我已经调用Fragments过的一个项目我已经Fragment在这个片段中调用了一个我需要从相机获取图片并将其设置为canvas background.在这里我捕获了相机图片但不知道如何在拍摄后获得这张照片并将其设置为画布背景.

片段代码

import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.ssoft.admin.code.SharedPreferenceStore;
import com.ssoft.admin.code.Tools;
import com.ssoft.admin.salesmateco.FragSiteInspectionAdditional;
import com.ssoft.admin.salesmateco.R;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-fragments

17
推荐指数
3
解决办法
4万
查看次数

“此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。” -反应本机

当我尝试运行 react-native 应用程序时遇到此错误react-native run-android,我无法安装该应用程序。我正在尝试构建一个相机应用程序。我当前的 react-native 版本:0.62.0,React-cli 版本:2.0.1。

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:mergeDebugAssets'.
> Could not resolve all task dependencies for configuration ':app:debugRuntimeClasspath'.
   > Could not resolve project :react-native-camera.
     Required by:
         project :app
      > Cannot choose between the following variants of …
Run Code Online (Sandbox Code Playgroud)

android gradle android-camera android-studio react-native

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

无意图捕获图像,在不同设备上提供不同的输出

我的要求既不是显示相机预览,也不是使用相机意图进行图像捕捉.

我找到了一种适用于我的第一个测试设备(Galaxy tab 7")的方法.

我的CaptureImage功能如下

private void CaptureImage() {
        int FrontCameraFound = getCameraID();
        if (FrontCameraFound != -1) {
            mCamera = Camera.open(FrontCameraFound);

            parameters = mCamera.getParameters();

            mCamera.setParameters(parameters);
            mCamera.startPreview();

            Camera.PictureCallback mCall = new Camera.PictureCallback() {
                @Override
                public void onPictureTaken(byte[] data, Camera camera) {

                    bmp = BitmapFactory.decodeByteArray(data, 0, data.length);

                    // set bitmap tp image view just to check 
                    // if image capture proper, testing purpose
                    iv_image.setImageBitmap(bmp);

                    mCamera.stopPreview();
                    mCamera.release();
                    mCamera = null;
                }
            };
            mCamera.takePicture(null, null, mCall);
        }
    }
Run Code Online (Sandbox Code Playgroud)

getCameraID功能如下

private …
Run Code Online (Sandbox Code Playgroud)

android android-camera

16
推荐指数
1
解决办法
4103
查看次数

如何在视频录制中添加文字?

我搜索很多但没有找到任何解决方案.我的问题是如何在录制时向视频添加文字,这样我们就可以在看到视频时获得相同的文字.当我看到捕捉视频时,我想要这样的东西. 在此输入图像描述 目前我正在分时间和视频.所以问题是如何结合它.任何一种帮助将不胜感激.谢谢你提前..

android android-intent android-camera android-mediarecorder

16
推荐指数
1
解决办法
6788
查看次数

如何同时捕捉Galaxy S4中的前置和后置摄像头?

您可能知道三星Galaxy s4能够同时捕获前置和后置摄像头.现在我需要在我的应用程序中捕获它们.我应该下载什么吗?
我试图打开它们但是没有成功!我正在使用API​​级别17.

android android-camera galaxy

16
推荐指数
1
解决办法
9180
查看次数

如何在SurfaceView上显示相机预览?

我想在SurfaceView上打开相机硬件.在布局中,我创建了一个SurfaceView,然后打开相机,如下面的代码所示.当我运行代码时,CameraAvailableCB中的toast出现并显示"onCameraAvailable",但SurfaceView上没有任何内容.

如何在SurfaceView上显示相机显示?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.mBtnCapture = (Button) findViewById(R.id.actMain_btn_capture);
    this.mSurfaceView = (SurfaceView) findViewById(R.id.actMain_surfaceView);
    this.mSurfaceHolder = this.mSurfaceView.getHolder();
    this.mSurfaceHolder.addCallback(this);
    this.mCameraManager = (CameraManager) this.getSystemService(Context.CAMERA_SERVICE);

    try {
        cameraIDsList = this.mCameraManager.getCameraIdList();

        for (String id : cameraIDsList) {
            Log.v(TAG, "CameraID: " + id);
        }

    } catch (CameraAccessException e) {
        e.printStackTrace();
    }

    cameraStateCB = new CameraDevice.StateCallback() {
        @Override
        public void onOpened(CameraDevice camera) {
            Toast.makeText(getApplicationContext(), "onOpened", Toast.LENGTH_SHORT).show();

            //requesting permission
            int permissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.CAMERA);
            if (permissionCheck != PackageManager.PERMISSION_GRANTED) {

                if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.CAMERA)) …
Run Code Online (Sandbox Code Playgroud)

camera android surfaceview android-camera surfaceholder

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

Android相机预览帧时间戳

有没有办法获取Android相机预览帧何时被捕获的时间戳?

  1. 没有Camera方法返回时间戳
  2. 您无法从本机代码访问相机
  3. 缓冲区大小不是静态的(取决于从摄像机获取的最小预览大小 - 何时以及方法是否正常工作)如果队列中有更多帧,则会有预览缓冲区被丢弃
  4. 设置的帧速率(再次,如果/当方法工作时)只是系统的提示,摄像机可以忽略该值.相机返回的帧速率也是如此.

我正在实时进行一些繁重的图像处理,并且加在一起时的小错误是一个真正的问题.

android android-ndk android-camera

15
推荐指数
1
解决办法
2877
查看次数

如何在android中运行媒体扫描程序

我想在捕获图像时运行媒体扫描仪.捕获后,图像在网格视图中更新.为此,我需要运行媒体扫描仪.我找到了两个运行媒体扫描程序的解决方案,一个是广播 事件,另一个是运行媒体扫描程序类.我认为在Ice Cream Sandwich(4.0)中引入了媒体扫描程序类.在版本之前需要设置广播事件来运行媒体扫描程序.

任何人都可以指导我如何以正确的方式运行媒体扫描仪.

android android-camera android-gridview android-mediascanner

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