AndroidMenifest.xml
Add below permissions :
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_gravity="center"
xmlns:android="http://schemas.android.com/apk/res/android"><ImageView
android:layout_marginTop="25dp"
android:layout_gravity="center"
android:id="@+id/iv_Image"
android:background="@mipmap/ic_launcher"
android:layout_width="120dp"
android:layout_height="120dp" /><Button
android:id="@+id/btn_capture"
android:layout_gravity="center"
android:text="capture Image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Mainactivity.java
package com.example.vips.cropping; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.ActivityNotFoundException; import android.content.ContentValues; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; import android.os.Environment; import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.security.PrivateKey; import java.util.Random; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView ivImage; private Button btnCapture; private Intent CropIntent; private Uri uri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { ivImage = (ImageView) findViewById(R.id.iv_Image); btnCapture = (Button) findViewById(R.id.btn_capture); btnCapture.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.iv_Image: break; case R.id.btn_capture: captureImage(); break; } } private void captureImage() { Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI); startActivityForResult(i, 1); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1) { uri = data.getData(); ImageCropFunction(); } else if (requestCode == 2) { try { Bundle extras = data.getExtras(); Bitmap thePic = extras.getParcelable("data"); String root = Environment.getExternalStorageDirectory().toString(); File myDir = new File(root + "/vips_images"); myDir.mkdirs(); Random generator = new Random(); int n = 10000; n = generator.nextInt(n); String fname = "Image-" + n + ".jpg"; File file = new File(myDir, fname); if (file.exists()) file.delete(); try { FileOutputStream out = new FileOutputStream(file); thePic.compress(Bitmap.CompressFormat.JPEG, 90, out); ivImage.setImageBitmap(thePic); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } catch (Exception e) { e.printStackTrace(); } } } public void ImageCropFunction() { try { CropIntent = new Intent("com.android.camera.action.CROP"); CropIntent.setDataAndType(uri, "image/*"); CropIntent.putExtra("crop", "true"); CropIntent.putExtra("outputX", 180); CropIntent.putExtra("outputY", 180); CropIntent.putExtra("aspectX", 3); CropIntent.putExtra("aspectY", 4); CropIntent.putExtra("scaleUpIfNeeded", true); CropIntent.putExtra("return-data", true); startActivityForResult(CropIntent, 2); } catch (Exception e) { } } }




No comments:
Post a Comment