Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 相机预览不';不启动,不启动';没有显示任何错误_Android - Fatal编程技术网

Android 相机预览不';不启动,不启动';没有显示任何错误

Android 相机预览不';不启动,不启动';没有显示任何错误,android,Android,我正在尝试开发一个相机活动,但当我开始活动时,相机预览没有开始。 它只显示按钮层,logcat不显示任何错误 在安卓4.1.1的10英寸平板电脑中,该活动正常运行 在装有安卓4.0.4的海信4“中,活动不起作用(不启动相机预览) 有人能帮我吗 这是活动中的代码 package com.asde.app; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; impo

我正在尝试开发一个相机活动,但当我开始活动时,相机预览没有开始。
它只显示按钮层,logcat不显示任何错误

在安卓4.1.1的10英寸平板电脑中,该活动正常运行

在装有安卓4.0.4的海信4“中,活动不起作用(不启动相机预览)

有人能帮我吗

这是活动中的代码

package com.asde.app;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ZoomControls;

public class CameraHandler extends Activity implements SurfaceHolder.Callback {

    private LayoutInflater myInflater = null;
    Camera myCamera;
    byte[] tempdata;
    boolean myPreviewRunning = false;
    private SurfaceHolder mySurfaceHolder;
    private SurfaceView mySurfaceView;
    ImageView takePicture;
    private int contador = 0;
    int currentZoomLevel = 0, maxZoomLevel = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.activity_campreview);

        mySurfaceView = (SurfaceView) findViewById(R.id.surface);
        mySurfaceHolder = mySurfaceView.getHolder();
        mySurfaceHolder.addCallback(this);
        if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
            mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);



        myInflater = LayoutInflater.from(this);
        View overView = myInflater.inflate(R.layout.layer_camerahandler,null);
        this.addContentView(overView, new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));


        takePicture = (ImageView) findViewById(R.id.shutter);
        takePicture.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                myCamera.takePicture(myShutterCallback, myPictureCallback, myJpeg);
            }
        });

        ImageView patient = (ImageView) findViewById(R.id.patient);
        patient.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(CameraHandler.this, WelcomeActivity.class);  
                startActivity(intent);
                finish();
            }
        });



    }

    //Evento post toma foto. (sonidos etc)
    ShutterCallback myShutterCallback = new ShutterCallback() {
        @Override
        public void onShutter() {
        }
    };

    PictureCallback myPictureCallback = new PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera myCamera) {
            // TODO Auto-generated method stub
        }
    };

    PictureCallback myJpeg = new PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera myCamera) {
            // TODO Auto-generated method stub
            if(data != null){
                tempdata = data;
                done();
            }
        }
    };


    void done(){

        contador++;
        // Creo carpeta destino
        File folders = new File(Environment.getExternalStorageDirectory()
                + "/GASDE/Telemedicina/data/");
        folders.mkdirs();
        // Defino nombre archivo descarga
        File file;
        file = new File(Environment.getExternalStorageDirectory()
                + "/GASDE/Telemedicina/data/"+contador+".jpg");

        // Compruebo existencia archivo
        if (!file.exists()) {
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            file.delete();
            try {
                file.createNewFile();
            } catch (IOException e) {               
                e.printStackTrace();
            }
        }


        Bitmap bmp = BitmapFactory.decodeByteArray(tempdata, 0, tempdata.length);

        try {
               FileOutputStream out = new FileOutputStream(file);
               bmp.compress(Bitmap.CompressFormat.JPEG, 100, out);
               out.close();
               bmp.recycle();
               Toast.makeText(this, "creada", Toast.LENGTH_SHORT).show();
               myCamera.startPreview();
                System.out.println("2-" + myCamera.getParameters().getFocusMode());

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

    //metodos de control del objeto camara

    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
        // TODO Auto-generated method stub
        try{
            if(myPreviewRunning){               
                myCamera.stopPreview();
                myPreviewRunning = false;
            }
            Camera.Parameters p = myCamera.getParameters();
            p.setPreviewSize(width,height);

            myCamera.setParameters(p);
            myCamera.setPreviewDisplay(holder);
            myCamera.startPreview();
            System.out.println("1-" + myCamera.getParameters().getFocusMode());
            myPreviewRunning = true;
        }catch(Exception e){}
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        // TODO Auto-generated method stub
            myCamera = Camera.open();

        }

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            //myCamera.cancelAutoFocus();
            myCamera.stopPreview();
            myPreviewRunning = false;
            myCamera.release();
            myCamera = null;
        }

    }
package com.asde.app;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.OutputStream;
导入android.app.Activity;
导入android.content.Intent;
导入android.graphics.Bitmap;
导入android.graphics.Bitmap.CompressFormat;
导入android.graphics.BitmapFactory;
导入android.graphics.PixelFormat;
导入android.hardware.Camera;
导入android.hardware.Camera.PictureCallback;
导入android.hardware.Camera.ShutterCallback;
导入android.os.Build;
导入android.os.Bundle;
导入android.os.Environment;
导入android.provider.MediaStore.Images;
导入android.view.LayoutInflater;
导入android.view.SurfaceHolder;
导入android.view.SurfaceView;
导入android.view.view;
导入android.view.Window;
导入android.view.WindowManager;
导入android.view.view.OnClickListener;
导入android.view.ViewGroup.LayoutParams;
导入android.widget.ImageView;
导入android.widget.Toast;
导入android.widget.ZoomControls;
公共类CameraHandler扩展活动实现SurfaceHolder.Callback{
私用充气机myInflater=null;
照相机我的照相机;
字节[]临时数据;
布尔myPreviewRunning=false;
私人表面持有人;
私人SurfaceView mySurfaceView;
图像视图拍摄;
私有int contador=0;
int currentZoomLevel=0,maxZoomLevel=0;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getWindow().setFormat(像素格式.半透明);
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
setContentView(R.layout.activity_campreview);
mySurfaceView=(SurfaceView)findViewById(R.id.surface);
mySurfaceHolder=mySurfaceView.getHolder();
mySurfaceHolder.addCallback(this);
if(Build.VERSION.SDK\u INT<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:orientation = "vertical"
     android:gravity = "right|center_vertical"
     android:layout_gravity = "right|center_vertical">

               <LinearLayout

          android:layout_width = "match_parent"
          android:layout_height = "wrap_content"
          android:orientation = "horizontal"
          android:layout_marginBottom="10dp"
          android:layout_marginLeft="10dp"
          android:layout_weight="1"
          android:gravity = "right|bottom">
          <ImageView
               android:id="@+id/zoomout"
               android:layout_width = "wrap_content"
               android:layout_height = "wrap_content"
               android:layout_marginRight="10dp"
               android:src="@drawable/zoomout">
          </ImageView>
           <ImageView
               android:id="@+id/zoomin"
               android:layout_width = "wrap_content"
               android:layout_height = "wrap_content"
               android:layout_marginRight="10dp"
               android:src="@drawable/zoomin">
          </ImageView>

     </LinearLayout>


     <LinearLayout

          android:layout_width = "match_parent"
          android:layout_height = "wrap_content"
          android:orientation = "horizontal"
          android:layout_weight="10"
          android:gravity = "right|center_vertical">

          <ImageView
               android:id="@+id/shutter"
               android:layout_width = "wrap_content"               
               android:layout_marginRight="8dp"
               android:layout_height = "wrap_content"
               android:src="@drawable/shutter">
          </ImageView>
     </LinearLayout>

          <LinearLayout

          android:layout_width = "match_parent"
          android:layout_height = "wrap_content"
          android:orientation = "horizontal"
          android:layout_marginBottom="10dp"
          android:layout_marginLeft="10dp"
          android:layout_weight="1"
          android:gravity = "left|bottom">
          <ImageView
               android:id="@+id/patient"
               android:layout_width = "wrap_content"
               android:layout_height = "wrap_content"
               android:src="@drawable/gallery">
          </ImageView>

     </LinearLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">
     <SurfaceView
          android:id = "@+id/surface"
          android:layout_width = "fill_parent"
          android:layout_height = "fill_parent">
     </SurfaceView>
</LinearLayout>