Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<pre><code>package makemachine.android.examples; import java.io.File; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class PhotoCaptureExample extends Activity { protected Button _button; protected ImageView _image; protected TextView _field; protected String _path; protected boolean _taken; protected static final String PHOTO_TAKEN = "photo_taken"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); _image = ( ImageView ) findViewById( R.id.image ); _field = ( TextView ) findViewById( R.id.field ); _button = ( Button ) findViewById( R.id.button ); _button.setOnClickListener( new ButtonClickHandler() ); _path = Environment.getExternalStorageDirectory() + "/images /make_machine_example.jpg"; } public class ButtonClickHandler implements View.OnClickListener { public void onClick( View view ){ Log.i("MakeMachine", "ButtonClickHandler.onClick()" ); startCameraActivity(); } } protected void startCameraActivity() { Log.i("MakeMachine", "startCameraActivity()" ); File file = new File( _path ); Uri outputFileUri = Uri.fromFile( file ); Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE ); intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri ); startActivityForResult( intent, 0 ); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.i( "MakeMachine", "resultCode: " + resultCode ); switch( resultCode ) { case 0: Log.i( "MakeMachine", "User cancelled" ); break; case -1: onPhotoTaken(); break; } } protected void onPhotoTaken() { Log.i( "MakeMachine", "onPhotoTaken" ); _taken = true; BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; Bitmap bitmap = BitmapFactory.decodeFile( _path, options ); _image.setImageBitmap(bitmap); _field.setVisibility( View.GONE ); } @Override protected void onRestoreInstanceState( Bundle savedInstanceState){ Log.i( "MakeMachine", "onRestoreInstanceState()"); if( savedInstanceState.getBoolean( PhotoCaptureExample.PHOTO_TAKEN ) ) { onPhotoTaken(); } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { super.onKeyDown(keyCode, event); switch(keyCode) { case KeyEvent.KEYCODE_CAMERA: Toast.makeText(PhotoCaptureExample.this, "Pressed Camera Button", Toast.LENGTH_SHORT).show(); return true; case KeyEvent.KEYCODE_1: Toast.makeText(PhotoCaptureExample.this, "Pressed 1", Toast.LENGTH_SHORT).show(); return true; case KeyEvent.KEYCODE_HOME: Toast.makeText(PhotoCaptureExample.this, "Pressed Home Button", Toast.LENGTH_SHORT).show(); return true; case KeyEvent.KEYCODE_BACK: Toast.makeText(PhotoCaptureExample.this, "Pressed Back Button", Toast.LENGTH_SHORT).show(); Intent result = new Intent("Complete"); setResult(Activity.RESULT_OK, result); finish(); return true; } return false; } @Override protected void onSaveInstanceState( Bundle outState ) { outState.putBoolean( PhotoCaptureExample.PHOTO_TAKEN, _taken ); } </code></pre> <p>}</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload