اذا كنت مطور اندرويد واردت التعامل مع الكاميرا سواء كان لالتقاط الصور او تسجيل مقطع فيديو او حتى اذا اردت استيراد صورة من الاستديو الخاص بالجهاز, فربما واجهتك مشكلة في تنفيد الكود الخاص بهذ الامر, لذلك تسهيلاً لعملية التواصل مع الوسائط بشكل عام او الكاميرا بشكل خاص وجدت هذه المكتبة.

هذه المكتبة توفر لك عناء كتابة الاكواد فلا حاجة لاستدعاء الـ Intent الخاص بالكاميرا او كتابة الاكواد الخاصة بتخزين الصور على ذاكرة الجهاز او اضافة الاوامر الخاصة بصلاحيات الكاميرا وذاكرة التخزين, فمن خلال بعض الاسطر البسيطة تستطيع الوصول للكاميرا والتقاط الصور ومن ثم تقوم المتكبة بارجاع الرابط الخاص بالصورة.

تنبيه

حصلت تغيرات كثيرة مع الاصدار الجديد للمكتبة 2.x.x وذلك لاصلاح العديد من المشاكل وتحسين اداء المكتبة, لذلك يفضل تحديث مشروعك واتباع الشرح بالاسفل.

التثبيت

Maven

<dependency>
<groupId>net.alhazmy13.MediaPicker</groupId>
<artifactId>libary</artifactId>
<version>2.0.0</version>
</dependency>

Gradle

dependencies {
    compile 'net.alhazmy13.MediaPicker:library:2.0.0'
}

طريقة الاستخدام

الصور

بعد اضافتك للمكتبة, يجب عليك اتباع التالي:

  1. إنشاء اوبجكت من كلاس ImagePicker
  2. اعادة كتابة ميثود onActivityResult

انشاء اوبجكت من ImagePicker

يجب عليك انشاء اوبجكت من الكلاس ImagePicker, بعد ذلك قم باستدعاء الدالة build()

new ImagePicker.Builder(this).build();

مزايا اضافية

  • تستطيع تغير امتداد الصورة عن طريق استدعاء الدالة extanion وتمرير لها احد القيم التالية PNG or JPG
    مثال:

.extension(ImagePicker.Extension.PNG)

  • تستطيع تغير جودة الصورة عن طريق استدعاء الدالة compressLevel وتمرير لها احد القيم التالية HARD,MEDIUM ,SOFT or NONE

.compressLevel(ImagePicker.ComperesLevel.MEDIUM)

  • تستطيع التقاط الصور من الكاميرا او من البوم الصور او الاثنين معأ عن طريق استدعاء دالة mode وتمرير لها احد القيم التالية CAMERA,GALLERY or CAMERA_AND_GALLERY

.mode(ImagePicker.Mode.CAMERA)

  • تستطيع حفظ الصور في مجلد خاص على ذاكرة الجهاز او ان تستدعي المجلد الافتراضي للمكتبة عن طريق استدعاء الدالة directory
.directory(ImagePicker.Directory.DEFAULT)
//OR
.directory(Environment.getExternalStorageDirectory()+"/myFolder")```

مثال على استدعاء المكتبة ببعض الخصائص

new ImagePicker.Builder(MainActivity.this)
.directory(ImagePicker.Directory.DEFAULT)
.mode(ImagePicker.Mode.CAMERA)
.extension(ImagePicker.Extension.PNG) .compressLevel(ImagePicker.ComperesLevel.MEDIUM)
.build();

Video

بعد اضافتك للمكتبة, يجب عليك اتباع التالي:

  1. Implement an OnVideoSetListener
  2. إنشاء اوبجكت من كلاس VideoPicker

Implement an OnVideoSetListener

من احد اهم الامور لاسترجاع رابط الفيديو, يجب عليك ان تقوم بعمل implement للانترفيس OnVideoSetListener

@Override public void OnVideoSet(String path) { }

انشاء اوبجكت من VideoPicker

يجب عليك انشاء اوبجكت من الكلاس VideoPicker, بعد ذلك قم باستدعاء الدالة pick()

  VideoPicker videoPicker=new VideoPicker(this);
  videoPicker.setOnVideoSetListener(this);
  videoPicker.pick();

مزايا اضافية

  • تستطيع تغير امتداد الفيديو عن طريق استدعاء الدالة SetExtanion وتمرير لها احد القيم التالية Mp4,3gp or mkv
    مثال:
 videoPicker.setExtension(VideoPicker._MP4);

Voice

قريبا,,

رابط المكتبة

https://github.com/alhazmy13/MediaPicker