آموزش Image Picker در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Image Picker در برنامه نویسی اندروید می پردازیم این آموزش کاملا شبیه به بخش Image Picker مربوط به تلگرام است و اصلا هیچ فرقی نمی کند تمامی امکانات را نیز پشتیبانی می کند در ادامه می توانید پیش نمایشی از آن را مشاهده کنید با ما همراه باشید.
به خاطر اینکه حجم عکس کمی بالا بود من آن را به صورت لینک برای شما قرار میدهم.
لینک
از ویژگی هایی که این کتاب خانه دارد می توان به :
- شباهت بسیار زیاد در بخش Image Picker نسخه تلگرام
- پشتیبانی از zoom کردن در عکس
- پیش نمایش عکس
- انتخاب چندین عکس
- دارا بودن انیمیشن شمارش تعداد عکس
- و…
برای اینکه این کتاب خانه را به پروژه اضافه کنید مثل همیشه عمل می کنیم.
ابتدا وارد فایل build.gradle از نوع module شده و در بخش dependencies خط زیر را اضافه کنید.
1 | compile 'com.library.tangxiaolv:telegramgallery:1.0.3' |
سپس پروژه را sync کنید علت خطاهای گریدل را قبلا بررسی کرده ایم در صورتی که به مشکلی خوردید واژه “Gradle” را در سایت جستجو کنید.
بعد از آن باید دسترسی استفاده از حافظه را اضافه کنیم.
برای اینکار وارد فایل AndroidManifest.xml شده و خط های زیر را اضافه کنید.
1 2 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> |
و همینطور باید کد زیر را نیز در AndroidManifest نیز قرار بدهید.
1 | <activity android:name="com.tangxiaolv.telegramgallery.GalleryActivity" /> |
تا اکتیویتی خاص ما را لانچ کند.
1 2 3 4 5 6 7 8 9 10 11 12 | GalleryConfig config = new GalleryConfig.Build() .limitPickPhoto(20) .singlePhoto(false) .hintOfPick("this is pick hint") .filterMimeTypes(new String[]{"image/jpeg"}) .build(); GalleryActivity.openActivity(MainActivity.this, 12, config); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { List<String> photos = (List<String>) data.getSerializableExtra(GalleryActivity.PHOTOS); List<String> vides = (List<String>) data.getSerializableExtra(GalleryActivity.VIDEOS); } |
در بالا limitPickPhoto محدودیت انتخاب عکس را تنظیم می کند.
در صورتی که می خواهید کاربر فقط یک عکس را بتواند انتخاب کند باید singlePhoto را برابر با true قرار دهید.
hintOfPick : متنی که به شکل کم رنگ برای هر عکس نمایش داده می شود.
filterMimeTypes : انجام فیلترینگ در نمایش نوع عکس.
نتیجه ها هم توسط onActivityResult به دست می آید در صورتی که لیستی از عکس ها انتخاب شد در یک مغتیر از نوع list ذخیره می شود و برای ویدیو هم همینطور
این آموزش هم پایان رسید.
موفق و موید باشید.
سلام
من از این کتابخونه توی فرگمنت استفاده کردم، توی متد openActivity جای ارگومان اول getActivity میزارم تا خطا نده.
بعد که وارد گالری میشه و عکسو انتخاب میکنی ، دکمه done که زده میشه به فرگمنت برمیگرده اما متد onActivityResult درست کار نمیکنه. من داخل اون متد هم toast و هم log گذاشتم هیچکدومش نمایش داده نمیشه
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (12 == requestCode && resultCode == Activity.RESULT_OK){
List photos = (List) data.getSerializableExtra(GalleryActivity.PHOTOS);
int count = photos.size();
Toast.makeText(getContext(),count+””,Toast.LENGTH_LONG).show();
Log.i(“IMAGE PICKED COUNT !! :”,count+” !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!”);
}
}
لطفا راهنمایی کنید
تشکر
سلام دوست عزیز شاید به دلیل این هست که شما عملیات super رو انجام ندادید
Super.onActivityResult(request code,result code,data);