相关疑难解决方法(0)

如何在没有服务或线程预览的情况下拍摄相机?

是否可以在不显示相机预览的情况下拍摄图像?我要求我能够从线程或服务中捕获图像,而不会干扰前景应用程序,我不想显示相机预览,但我仍想在后台捕获图像并将其存储在设备中

android

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

我的应用程序启动时,如何在没有预览的情况下从相机拍照?

现在我想要的只是一个应用程序,只需在启动时从相机拍摄照片.没有布局,没有相机预览......没有,只是一个简单的应用程序图标来启动应用程序.一旦启动,相机应该拍照.

这是预览图像,我不想在我的应用程序中显示.我只是想让我的应用程序点击图片中包围的拍照按钮:

在此输入图像描述

拍完照片后,我需要将照片保存在照片库中.

有人能指导我吗?谢谢

这是我在仿真器和设备上尝试过的一些代码.

import java.io.IOException;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;

public class Main extends Activity implements SurfaceHolder.Callback{

    private Camera camera;
     private ImageButton cameraClick;
     private SurfaceHolder mHolder; 

    /** Called when the activity is first created. */
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      SurfaceView surfaceView = (SurfaceView)findViewById(R.id.surfaceView1);
      mHolder = surfaceView.getHolder();
      mHolder.addCallback(this);
      mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);  

      cameraClick = (ImageButton) findViewById(R.id.cameraClick);
      cameraClick.setOnClickListener( …
Run Code Online (Sandbox Code Playgroud)

android android-intent

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

android - 使用没有surfaceview或textureview的相机

我一直试图弄清楚是否有办法使用相机拍摄视频/图片而不定义surfaceview或textureview.我找到了这个链接:使用没有表面视图的Android相机

我在我的nexus平板电脑上使用了这个技巧和textureview,但没有运气!此外,http://handycodeworks.com/?p = 19表示此方法不适用于所有设备.

有没有人知道是否有办法做到这一点?或者它只是android框架根本不支持的东西,GUI必须在布局中有一些表面/纹理元素?然后唯一的选择就是操纵布局,使其在屏幕上根据应用程序要求不可见.

编辑1:如上面链接http://handycodeworks.com/?p=19中所述,我尝试了以下代码:

public class CameraCapture {

  // I pass the getApplicationContext() from the main activity.
  public void startCameraCapture(Context contx) {
    SurfaceView sv = new SurfaceView(contx);
    mCamera = Camera.open();
    mCamera.setPreviewDisplay(sv.getHolder());
    mCamera.setPreviewCallback(new PreviewCallback() {
      @Override
      public void onPreviewFrame(byte[] data, Camera camera) {
        Log.v("TAG", "on preview frame called");
      }
    Thread.sleep(1000);
    mCamera.startPreview();
}
Run Code Online (Sandbox Code Playgroud)

但是,onPreviewFrame()从未被调用过.我错过了什么吗?

编辑2:

是否可以在本机代码中执行?使用OpenCV捕获视频/使用没有GUI元素的相机(surfaceview/textureview)?我查看了这个链接:http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#application-development-with-static-initialization.但是,它们还显示示例代码,其中包含在主布局xml文件中定义的某些摄像机视图元素.

android opencv android-intent android-layout android-camera

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