آموزش برش عکس در اندروید
سلام دوستان منبع فارسی برای برش عکس ندیدم گفتم شاید کسی خواست استفاده بکنه بدون مقدمه میرم سر اصل مطلب .
ابتدا به بخش Project level gradle رفته و کد زیر را اضافه کنید.
1 | maven { url "https://jitpack.io" } |
سپس در بخش app level gradle خود کد زیر را اضافه کنید
1 | compile 'com.theartofdev.edmodo:android-image-cropper:2.3.+' |
بعد از انجام تغییرات بالا روی دکمه sync کلیک کنید (در صورت sync نشدن این مطلب را مطالعه کنید)
خب در بالا ما از منبع jitpack.io یکی از کتاب خانه هایش را برای برش عکس به کلاس های جاوا خود اضافه می کنیم یا به اصطلاحا متدها را دانلود می کنیم.
فایل activity_main.xml را همانند زیر تکمیل می کنیم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="@android:color/black"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tap on the image below to change your profile picture" android:textColor="@android:color/white" android:textSize="20dp" android:id="@+id/textView" /> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/quick_start_cropped_image" android:background="@android:color/white" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:textColor="@android:color/black" android:layout_height="wrap_content" android:text="Name: Manish Kumar" android:textSize="30dp" android:layout_gravity="center" /> <TextView android:textColor="@android:color/black" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Email: manishh776@gmail.com" android:textSize="25dp" android:layout_gravity="center" /> <TextView android:textColor="@android:color/black" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="MobileNo:1234567890" android:textSize="25dp" android:layout_gravity="center" /> </LinearLayout> </FrameLayout> <ImageButton android:id="@+id/quick_start_cropped_image" android:layout_width="200dp" android:layout_height="200dp" android:src="@drawable/profile" android:layout_marginTop="39dp" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" /> </RelativeLayout> |
و فایل MainActivity.java را همانند زیر تکمیل می کنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | package chutka.bitman.com.bestimagecropperever; import android.Manifest; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.Toast; import com.theartofdev.edmodo.cropper.CropImage; import com.theartofdev.edmodo.cropper.CropImageView; public class MainActivity extends AppCompatActivity { ImageButton imageButton; /** * Persist URI image to crop URI if specific permissions are required */ private Uri mCropImageUri; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageButton = (ImageButton) findViewById(R.id.quick_start_cropped_image); imageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onSelectImageClick(v); } }); } /** * Start pick image activity with chooser. */ public void onSelectImageClick(View view) { CropImage.startPickImageActivity(this); } @Override @SuppressLint("NewApi") protected void onActivityResult(int requestCode, int resultCode, Intent data) { // handle result of pick image chooser if (requestCode == CropImage.PICK_IMAGE_CHOOSER_REQUEST_CODE && resultCode == Activity.RESULT_OK) { Uri imageUri = CropImage.getPickImageResultUri(this, data); // For API >= 23 we need to check specifically that we have permissions to read external storage. if (CropImage.isReadExternalStoragePermissionsRequired(this, imageUri)) { // request permissions and handle the result in onRequestPermissionsResult() mCropImageUri = imageUri; requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 0); } else { // no permissions required or already grunted, can start crop image activity startCropImageActivity(imageUri); } } // handle result of CropImageActivity if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) { CropImage.ActivityResult result = CropImage.getActivityResult(data); if (resultCode == RESULT_OK) { ((ImageButton) findViewById(R.id.quick_start_cropped_image)).setImageURI(result.getUri()); Toast.makeText(this, "Cropping successful, Sample: " + result.getSampleSize(), Toast.LENGTH_LONG).show(); } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) { Toast.makeText(this, "Cropping failed: " + result.getError(), Toast.LENGTH_LONG).show(); } } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { if (mCropImageUri != null && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // required permissions granted, start crop image activity startCropImageActivity(mCropImageUri); } else { Toast.makeText(this, "Cancelling, required permissions are not granted", Toast.LENGTH_LONG).show(); } } /** * Start crop image activity for the given image. */ private void startCropImageActivity(Uri imageUri) { CropImage.activity(imageUri) .setGuidelines(CropImageView.Guidelines.ON) .setMultiTouchEnabled(true) .start(this); } } |
ما به یک عکس نیاز داریم که درپایین برای شما قرار خواهیم داد.این عکس را ذخیره کرده و در فولدر drawable خود قرار دهید.
خب برنامه را ران کرده و کرده و روی دکمه کلیک کنید تا عکس را crop کنید ممنون که تا آخر با ما بودید.
سلام
برای کار کردن برنامه باید کد رو داخل منیفیست اضافه کنید.
activity android:name=”.Cropper”