如何在Android编程中从Camera Application捕获图像?

时间:2009-08-20 10:56:26

标签: android

我正在尝试在Android中实现Camera应用程序,我从网上获得一些代码通过WebCam创建一个Live Camera。这没问题。现在我必须在点击按钮时捕获图像,我显示捕获对话框窗口中的图像。如果程序正在运行但没有显示捕获的图像,则会显示一些默认图像。

我的代码是

public void captureImage()
{
    Camera.Parameters params = camera.getParameters();
    camera.setParameters(params);
    Camera.PictureCallback jpgCallback = new PictureCallback() 
    {
        public void onPictureTaken(byte[] data, Camera camera) 
        {
            try
            {
                Dialog d=new Dialog(c);
                d.setContentView(0x7f030000);
                BitmapFactory.Options opts = new BitmapFactory.Options();
                Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length,opts);
                TextView tv=(TextView)d.findViewById(0x7f050001);
                ImageView i=(ImageView)d.findViewById(0x7f050000);
                i.setImageBitmap(bitmap);
                tv.setText("Hai"+data.length);
                d.show();
            }
            catch(Exception e)
            {
                AlertDialog.Builder alert=new AlertDialog.Builder(c);
                alert.setMessage("Exception1"+e.getMessage());
                alert.create();
                alert.show();
            }
        }

    };
    camera.takePicture(null, null, jpgCallback);
}

我不知道这个默认图片的来源,我不知道如何解决这个问题。任何人都知道这个请帮助我。等待回复.....

1 个答案:

答案 0 :(得分:9)

如果这是在模拟器上,则唯一可用的摄像机图像是默认图像。

在完全不相关的注释中,不要按原始数字引用资源(例如d.setContentView(0x7f030000))。使用生成的R类(例如R.layout.something)。这些数字更改,当他们更改您的应用程序时,中断。