I am using the following code to use the camera to take a picture when a button is pressed.
However when I run the code it only starts the camera app after the button is pressed but does not take a picture. Why is this not working?
I wanted to take a picture when the button is pressed and store that on the SD card that can be viewed in the gallery app.
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);
}
}
Yeah, this the default behavior. there are two ways.
1) Start camera app intent(you are doing so), then click picture via camera app(like default camera does, by clicking on camera take picture button or hard key.)
2) Create your custom camera view by using Camera class and Surfaceview. It will give you full control to do whatever u want with camera(limited though)