كيفية قص وتحديد ابعاد الصورة داخل تطبيقك في الاندرويد ستوديو Cropper android stoudio

 

كيفية قص وتحديد ابعاد الصورة داخل تطبيقك في الاندرويد ستوديو Cropper android stoudio

كيفية قص وتحديد ابعاد الصورة داخل تطبيقك في الاندرويد ستوديو


بسم الله الرحمن الرحيم ، السلام عليكم ورحمة الله وبركاتة لكل المهتمين في شروحات الاندرويد في هذا المقال نقدم لكم كيف يمكنك اخذ صورة من الاستوديو الخاص بك وقصها ومن ثم بتخزينها سواء في التطبيق او في firebase .


الخطوة الاولى : اولا قم بإضافة المكتبة التالية داخل build.gradle


dependencies {
    api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
}


الخطوة الثانية : والان توجة الى ملف manifest لاضافة الاكواد التالية اسفل اسم package بالاعلى


<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>



اذا كنت تستخدم اصدار جديد من برنامج ألاندرويد ستوديو ستجد انة ظهر لك على السطر الثاني من الكود لون اصفر محيط به لذلك قم بتحذفة وتوجة اسفل application واضف الكود التالي


android:requestLegacyExternalStorage="true"


لماذا قمنا بهذة العملية ؟ لانة بكل بساطة اذا وضعت الماوس على السطر الملون بالاصفر سيخبرك بان هذة الاضافة تعمل على اجهزة الاندرويد الى الاصدار التاسع ولكن اذا كان اصدار الهاتف اندرويد 10 فما فوق لن تعمل معه حيث ظهر تغيير في الاصدار العاشر متعلق بالامان بشكل اكبر قليلا لذلك قمنا بعمل هذة الحركة


الخطوة الثالثة : عمل permission للتخزين


الان فوق </application> واسفل  </activity>  اضف الكود التالي وبعدها اغلق manifest


        <activity
            android:name="com.theartofdev.edmodo.cropper.CropImageActivity"
            android:theme="@style/Base.Theme.AppCompat" />




مزيد من الاكواد


  1. حل مشكلة مساحة الاندرويد ستوديو ونقل ملف SDK بدون مشاكل
  2. شرح كيفية تكبير وتصغير الكود داخل الاندرويد ستوديو
  3. شرح كيفية استخدام Data Binding داخل Recyclerview
  4. كيفية إضافة صفحة البداية ( صفحة انتظار ) - splash screen


الخطوة الرابعة : اضافة المكتبات اللازمه


الان توجة الى ملف Proguard والموجود اسفل build.gradle وسوف تجد الاكواد هناك باللون الرصاصي توجة الى اخر كود واضف اسفل الامر التالي


-keep class androidx.appcompat.widget.* { *; }


اختر ما يناسبك من الاكواد التاليه الى صفحة كلاس الكود الذي تعمل عليه java.class 


// start picker to get image for cropping and then use the image in cropping activity

CropImage.activity()

  .setGuidelines(CropImageView.Guidelines.ON)

  .start(this);



// start cropping activity for pre-acquired image saved on the device

CropImage.activity(imageUri)

 .start(this);



// for fragment (DO NOT use `getActivity()`)

CropImage.activity()

  .start(getContext(), this);



اذا كنت تستخدم fragment استخدم الكود الاخير واذا كنت تستخدم empty activity استخدام الكود الاول 

يفضل وضع الكود الذي اخترتة داخل setOnClickListener بحيث عندما ينقر المستخدم على الزر يفتح له واجهة تسمح له بإختيار مكان الصورة



الخطوة الخامسة : عمل methode لقص الصور


وفي النهاية قم بعمل Methode اخر شيئ خارج onCreat بإسم onActivityResult وضع بداخلها الكود التالي


        if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
            CropImage.ActivityResult result = CropImage.getActivityResult(data);
            if (resultCode == RESULT_OK) {
                imageURI = result.getUri();
                binding.profileImage.setImageURI(imageURI);
            } else if (resultCode == 
          CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
                Exception error = result.getError();
                Toast.makeText(this, error.getLocalizedMessage(), 
                Toast.LENGTH_SHORT).show();
            }
        }




قم بتعريف imageURI Uri بالاعلى واعطاء قيمها لها وهي null لكي تتمكن من استخدامها في اي مكان 



ستشاهد في السطر رقم 5 انة يأتي بالصورة من xml ويحظر مسارها uri ويتم تخزينة داخل imageURI والتي كانت قيمتها بالاعلى null عندما يتم تخزينة الصورة بداخلها ستتغير القيمة واسفل if اذا حدث خطأ سيخبر المستخدم بالخطأ الذي وقيه فية .


شاهد ايضا


  1. شرح كيفية عمل Progress Dialog داخل تطبيقك
  2. اضافة زر للعودة للصفحة السابقه وتعديل اسم toolbar
  3. حل مشاكل المحاكي AVD داخل الاندرويد ستوديو
  4. تعريف وشرح Data Binding وما اهميتها في تطوير تطبيقات الاندرويد ستوديو


تعليقات