标签: android-camera

在onActivityResult中使用相机时遇到问题

我有两个选项"选择照片"和"拍照" - 我的选择照片功能完全正常,但拍照时出现问题.主要是保存的图像在保存后显示在图像视图中.

定义了我的照片位置:

public class photoActivity extends Activity {   
      private String photoPath;
      private ImageView imgView;
{...} 
Run Code Online (Sandbox Code Playgroud)

我的相机听众:

bPicFromCam.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            String state = Environment.getExternalStorageState();

            if (Environment.MEDIA_MOUNTED.equals(state)) {

                long captureTime = System.currentTimeMillis();

                photoPath = Environment.getExternalStorageDirectory() + "/MYAPP" + captureTime + ".jpg";

                getPicFromCam(v);
            }
            else{

                Toast.makeText(getApplicationContext(),
                    "Sorry there is a problem accessing your SDCard, " +
                    "please select a picture from your gallery instead.", Toast.LENGTH_LONG).show();
            }

        }
    });
Run Code Online (Sandbox Code Playgroud)

然后我的代码启动相机意图(注意photoPath是正确的):

    public void getPicFromCam(View view){

    System.out.println("photoPath: " + …
Run Code Online (Sandbox Code Playgroud)

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

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

拍照无需预览Android

我想拍一张没有任何预览的照片.我使用了这段代码但是我收到了一个错误:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Camera.Parameters parameters = camera.getParameters();
    parameters.setPictureFormat(PixelFormat.JPEG);
    camera.setParameters(parameters);
    SurfaceView mview = new SurfaceView(getBaseContext());
    try {
        camera.setPreviewDisplay(mview.getHolder());
        camera.startPreview();
        camera.takePicture(null,null,photoCallback);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }




}

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

        Uri uriTarget = getContentResolver().insert(Media.EXTERNAL_CONTENT_URI, new ContentValues());
        OutputStream imageFileOS;

        try {

            imageFileOS = getContentResolver().openOutputStream(uriTarget);
            imageFileOS.write(data);
            imageFileOS.flush();
            imageFileOS.close();

            Toast.makeText(AndroidTestJNIActivity.this, "Image saved: " + uriTarget.toString(), Toast.LENGTH_LONG).show();

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

        } catch (IOException …
Run Code Online (Sandbox Code Playgroud)

android surfaceview android-camera

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

Android OpenGL结合了SurfaceTexture(外部图像)和普通纹理

我想将相机预览SurfaceTexture与一些叠加纹理混合.我正在使用这些着色器进行处理:

    private final String vss = "attribute vec2 vPosition;\n"
        + "attribute vec2 vTexCoord;\n"
        + "varying vec2 texCoord;\n"
        + "void main() {\n" 
        + "  texCoord = vTexCoord;\n"
        + "  gl_Position = vec4 ( vPosition.x, vPosition.y, 0.0, 1.0 );\n"
        + "}";

private final String fss = "#extension GL_OES_EGL_image_external : require\n"
        + "precision mediump float;\n"
        + "uniform samplerExternalOES sTexture;\n"
        + "uniform sampler2D filterTexture;\n"
        + "varying vec2 texCoord;\n"
        + "void main() {\n"
        +"  vec4 t_camera = texture2D(sTexture,texCoord);\n"
        //+"  vec4 t_overlayer = texture2D(filterTexture, texCoord);\n" 
        //+ …
Run Code Online (Sandbox Code Playgroud)

android textures image opengl-es android-camera

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

camera.takePicture()无法在我的JB&GB和Froyo手机上运行

好吧,我这次再次更新了我的问题.

我已经在Galaxy Nexus(JB),Moto-XX(GB),SAMSUNG(Froyo)上逐一测试了以下代码,发生了不同的问题/异常.

public class MainActivity extends Activity {
    @SuppressLint("NewApi")
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

          ShutterCallback shutterCallback = new ShutterCallback() {
           public void onShutter() {
                  System.out.println("shutterCallback");
           }
          };

          PictureCallback rawCallback = new PictureCallback() {
           public void onPictureTaken(byte[] data, Camera camera) {
                  System.out.println("onPictureTaken");
           }
          };

          PictureCallback jpegCallback = new PictureCallback() {
           public void onPictureTaken(byte[] data, Camera camera) {
                  System.out.println("jpegCallback");
                  FileOutputStream outStream = null;
                  try {
                  System.out.println("jpegCallback begin");
                     camera.startPreview();
                     File storagePath =  new File("/mnt/sdcard/");
                     File myImage = new File(storagePath, "example2.jpg"); …
Run Code Online (Sandbox Code Playgroud)

android android-camera

10
推荐指数
1
解决办法
3183
查看次数

修复Android相机应用宽高比和旋转

看起来如何:http: //i41.tinypic.com/30278m1.png

它看起来像在pic中,我希望它具有正确的长宽比和正确的旋转

请看一下代码,我该如何解决?

这是我的代码:

    public class MainActivity extends Activity implements SurfaceHolder.Callback {

Camera mCamera;
SurfaceView mPreview; 

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mPreview = (SurfaceView)findViewById(R.id.preview);
    mPreview.getHolder().addCallback(this);
    mPreview.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    mCamera = Camera.open();
}   
@Override
public void onPause() {
    super.onPause();
    mCamera.stopPreview();
}    
@Override
public void onDestroy() {
    super.onDestroy();
    mCamera.release();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    Camera.Parameters params = mCamera.getParameters();
    List<Camera.Size> sizes = params.getSupportedPreviewSizes();
    Camera.Size selected = sizes.get(0);
    params.setPreviewSize(selected.width,selected.height);
    mCamera.setParameters(params);
    mCamera.startPreview();
} …
Run Code Online (Sandbox Code Playgroud)

android aspect-ratio surfaceview android-camera

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

视频分辨率存储在android中的哪个位置?

我正在自动化android中的一个视频应用程序.为了做到这一点,我需要将视频分辨率设置为最高.

我知道在常规相机中,我可以设置值

 /data/data/com.android.gallery3d/shared_prefs/com.android.gallery3d_preferences_0.xml 
Run Code Online (Sandbox Code Playgroud)

但我在那里设置的值只是为摄像机而不是为视频设置.知道视频分辨率值存储在哪里吗?

如果有任何ADb命令来存储视频编码分辨率,那么它会更好.

以下是我使用的adb命令,但似乎无法工作:

 adb shell am start -a android.media.action.VIDEO_CAPTURE  --ei android.intent.extras.CAMERA_FACING 1 --ei android.intent.extras.EXTRA_VIDEO_QUALITY 1  -n com.android.gallery3d/com.android.camera.CameraActivity
Run Code Online (Sandbox Code Playgroud)

我最近也发现了

 /data/data/com.android.gallery3d/shared_prefs/com.android.gallery3d_preferences_0.xml
Run Code Online (Sandbox Code Playgroud)

文件包含最高分辨率的值,键名称为:"pref_video_quality_key"但不知何故,它只设置了相机值并且不执行前置摄像头值

android android-camera

10
推荐指数
1
解决办法
1967
查看次数

如何在触发自动对焦时停止相机闪光?

在我的相机应用程序中,当用户点击屏幕时,我使用以下代码触发自动对焦:

mCamera.autoFocus(null);
Run Code Online (Sandbox Code Playgroud)

我还允许用户在选项屏幕中设置相机闪光模式.问题在于,当触发自动对焦时,相机闪光灯有时会在某些手机上触发,用户会抱怨这一点.在大多数这些手机上,可以通过将闪光模式设置为来避免这种情况Parameters.FLASH_MODE_OFF.我已经在Galaxy S2上验证了这一点,但在某些手机(例如Nexus 4)上,它仍然会发生(根据用户报告).

触发自动对焦时,如何可靠地防止相机闪光灯开启?可能吗?

android android-camera camera-api

10
推荐指数
0
解决办法
572
查看次数

将图像视图定位为相机预览上的叠加图像

您好我在使用Android Camera API编写相机应用程序!

它具有以下功能:

  • 该应用程序具有相机预览的图像视图
  • 用户可以将该图像视图拖放到相机预览上
  • drop事件捕获图像视图放置的位置
  • 用户捕获图像,并且在用户期望的拖动然后丢弃的位置上的照片上添加图像视图

以下是用于拖放图像视图的代码:

@Override
public boolean onTouch(View view, MotionEvent event) {
    final int X = (int) event.getRawX();
    final int Y = (int) event.getRawY();
    switch (event.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
            _xDelta = X - lParams.leftMargin;
            _yDelta = Y - lParams.topMargin;
            break;
        case MotionEvent.ACTION_UP:
            xloc=X;
            yloc=Y;
            Toast.makeText(getContext(), "Location==="+Integer.toString(xloc)+"==="+Integer.toString(yloc), Toast.LENGTH_SHORT).show();
            break;
        case MotionEvent.ACTION_POINTER_DOWN:
            break;
        case MotionEvent.ACTION_POINTER_UP:
            break;
        case MotionEvent.ACTION_MOVE:
            RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view
                    .getLayoutParams();
            layoutParams.leftMargin = X - _xDelta;
            layoutParams.topMargin …
Run Code Online (Sandbox Code Playgroud)

android overlay imageview android-camera android-bitmap

10
推荐指数
1
解决办法
1803
查看次数

Android中的人体部位检测

目前我正在研究谷歌人脸检测API,API我能够检测到人类完整的脸(眼睛,鼻子和其他部位),并且根据这个概念,我已经开发了一个应用程序,如果你站在前脸摄像头前面那么它会检测到你的脸并显示一些手势.

Context context = Applications.getAppContext();

FaceDetector detector = new FaceDetector.Builder(context)
            .setClassificationType(FaceDetector.ALL_CLASSIFICATIONS)
            .build();

detector.setProcessor(
         new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory())
         .build());

if (!detector.isOperational()) {

}

mCameraSource = new CameraSource.Builder(context, detector)
            .setRequestedPreviewSize(640, 480)
            .setFacing(CameraSource.CAMERA_FACING_FRONT)
            .setRequestedFps(30.0f)
            .build();
Run Code Online (Sandbox Code Playgroud)

到目前为止我开发的应用视频链接: -

https://www.dropbox.com/s/097todfu90ic12j/VirtualMirror.mp4?dl=0

应用程序游戏商店链接: -

https://play.google.com/store/apps/details?id=com.twins.virtualmirror

有没有可用的API,我们可以识别人类的其他身体部位(胸部,手部,腿部和身体的其他部位),因为根据Google的愿景,API它只能检测人的面部而不是其他部位.

api android face-detection android-camera

10
推荐指数
1
解决办法
2612
查看次数

SurfaceView vs TextureView for Camera?

我想在我的应用程序中加入一个相机功能,这将允许视图本身的布局过渡,更改其大小,预览大小和有效处理方向更改.我应该使用TextureViewSurfaceView

决定决定..

android surfaceview android-camera textureview

9
推荐指数
1
解决办法
8358
查看次数