كيفية قص وتحديد ابعاد الصورة داخل تطبيقك في الاندرويد ستوديو 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 فما فوق لن تعمل معه حيث ظهر تغيير في الاصدار العاشر متعلق بالامان بشكل اكبر قليلا لذلك قمنا بعمل هذة الحركة


الخطوة الثالثة :

الان فوق </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 اخر شيئ خارج 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 وما اهميتها في تطوير تطبيقات الاندرويد ستوديو

احمد محمود هو طالب جامعي يدرس في احدى الجامعات المصرية , تم تاسيس موقع جي كودرس في منتصف عام 2020 حيث يسعى الموقع الى مساعدة الطلاب في تعلم البرمجة وتوفير الاكواد الجاهزة للاستخدام لمساعدة الطلاب ً