Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Show Image on Screen Before Saving :</p> <p>Use my Code. I am taking a picture using camera intent and before saving it to gallery , it is showed to the user with a Save and Cancel Button :- Call Camera Intent :-</p> <pre><code>// This code is to call the camera intent. Basically it will start your camera. Put this code in a button or something String SD_CARD_TEMP_DIR = Environment.getExternalStorageDirectory() + File.separator +CommonFunction.getDateTime()+".jpg"; // Get File Path Intent takePictureFromCameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); takePictureFromCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(SD_CARD_TEMP_DIR))); startActivityForResult(takePictureFromCameraIntent, 123); </code></pre> <p>onActivityResult : -</p> <pre><code>// This function is called when you come back to your activity after the intent has finished. Do read android documentation on Google. It will Help public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == CAMERA_RESULT) { if (resultCode == Activity.RESULT_OK) { String galleryImatePath = SD_CARD_TEMP_DIR; // make SD_CARD_TEMP_DIR Global so that you can access it here from camera intent or pass it in put Extra method and retrieve it here File f = new File(galleryImatePath); try {//This code will rotate your image if you have taken the image by rotating the camera Bitmap cameraBitmap = null; BitmapFactory.Options bmOptions = new BitmapFactory.Options(); bmOptions.inJustDecodeBounds = false; bmOptions.inPurgeable = true; bmOptions.inBitmap = cameraBitmap; bmOptions.inMutable = true; cameraBitmap = BitmapFactory.decodeFile(galleryImatePath,bmOptions); ByteArrayOutputStream bos = new ByteArrayOutputStream(); cameraBitmap.compress(Bitmap.CompressFormat.JPEG, 50, bos); //To Rotate image Code ExifInterface exif = new ExifInterface(galleryImatePath); float rotation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); System.out.println(rotation); float rotationInDegrees = exifToDegrees(rotation); System.out.println(rotationInDegrees); Matrix matrix = new Matrix(); matrix.postRotate(rotationInDegrees); final Bitmap rotatedBitmap = Bitmap.createBitmap(cameraBitmap , 0, 0, cameraBitmap.getWidth(), cameraBitmap.getHeight(), matrix, true); FileOutputStream fos=new FileOutputStream(galleryImatePath); rotatedBitmap.compress(Bitmap.CompressFormat.JPEG, 50, fos); fos.write(bos.toByteArray()); cameraBitmap.recycle(); System.gc(); fos.flush(); fos.close(); // To set image in imageview in dialog. This code will set your image in a custon dialog box "captiondialog". It will contain a full width and height imageview and two textviews - done and cancel. It is upto u what you want to define in the textview's click listener. For example, you can pass the storing image in database in the "Done" textview and "Cancel" textview will dismiss your captiondialog and you app will return to your activity Capdialog = new Dialog(AddToDo.this,android.R.style.Theme_NoTitleBar_Fullscreen); Capdialog.setContentView(R.layout.captiondialog); Capdialog.setCancelable(false); TextView cancel = (TextView) Capdialog .findViewById(R.id.cancel); TextView done = (TextView) Capdialog.findViewById(R.id.done); Capdialog.getWindow().setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); ImageView img = (ImageView) Capdialog.findViewById(R.id.image); img.setImageBitmap(rotatedBitmap); } catch(Exception e){} } } } </code></pre> <p>implement your done and cancel on click listener - what you want to do in them. My code will capture your image, rotate it in the right direction irrespective of camera rotation and show it to you in a dialog before saving it</p> <p>This code will store your image in DB.You have to use "blob" to store image.. Use This Code :- public void insertImageInDb(int id , Bitmap img ) { </p> <pre><code>byte[] data = bos.toByteArray(); // Use This or the code in comments below /* ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.PNG, 0, outputStream); byte[] data = outputStream.toByteArray();*/ insertStatement_logo.bindLong(1, id); insertStatement_logo.bindBlob(2, data); insertStatement_logo.executeInsert(); insertStatement_logo.clearBindings() ; </code></pre> <p>}</p> <p>There's an alternative intent action for the device camera that launches the camera in still image mode and does not exit until the user is finished with the activity:</p> <pre><code>Intent intent = new Intent( MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA); this.startActivity(intent); </code></pre> <p>Used with a ContentObserver this was exactly what I needed to accomplish. or Handle this in ActivityResult.</p> <p>Note :- if you are new to android, this is too hard for you to understand now. Please read the android documentation first on google and read tutorials. Make basic apps. Learn first</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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