0

我正在使用以下代码在按下按钮时使用相机拍照。

但是,当我运行代码时,它只会在按下按钮后启动相机应用程序,但不会拍照。为什么这不起作用?

我想在按下按钮时拍照并将其存储在可以在图库应用程序中查看的 SD 卡上。

public class demo extends Activity 
{
Button ButtonClick;
int CAMERA_PIC_REQUEST = 1337; 


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

ButtonClick =(Button) findViewById(R.id.Camera);
ButtonClick.setOnClickListener(new OnClickListener ()
   {
    @Override
    public void onClick(View view)
    {
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        // request code

        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

    }
  });

 }

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{
   if( requestCode == 1337)
   {
   //  data.getExtras()
      Bitmap thumbnail = (Bitmap) data.getExtras().get("data");          
   }
   else 
   {
    Toast.makeText(demo.this, "Picture NOt taken", Toast.LENGTH_LONG).show();
   }
    super.onActivityResult(requestCode, resultCode, data);
 }
}
4

1 回答 1

0

是的,这是默认行为。有两种方法。

1)启动相机应用程序意图(您正在这样做),然后通过相机应用程序单击图片(就像默认相机一样,通过单击相机拍照按钮或硬键。)

2) 使用 Camera 类和 Surfaceview 创建您的自定义相机视图。它可以让你完全控制用相机做任何你想做的事情(虽然有限)

于 2013-01-20T08:25:45.877 回答