آموزش کتابخانه Ion در اندروید
سلام دوستان همیشگی در این سری از آموزش برنامه نویسی اندروید به آموزش کتابخانه Ion در اندروید می پردازیم از کتابخانه ion می توانید به منظور رسیدگی به Requet های سمت سرور خود بپردازید با استفاده از کتابخانه ION می توانید عکس دانلود کنید در ImageView نمایش دهید Json را پارس کنید و کلی امکانات دیگر که با استفاده از این کتابخانه می توانید به پروژه خود اضافه کنید با ما همراه باشید.
ویژگی های کتابخانه ION در اندروید
- Caching
- پارس Json با استفاده از کتابخانه Gson
- دریافت رشته از اینترنت
- لود عکس از اینترنت
- دانلود فایل
- Post اطلاعات به سرور در اندروید
- دریافت اطلاعت در حالت فشرده Gzip
- پشتیبانی از Cookies
سریع برویم سراغ کار با کتابخانه ION
ابتدا وارد فایل Build.gradle از نوع Module شده سپس خط زیر را به بخش Dependencies اضافه کنید.
1 2 3 | dependencies { compile 'com.koushikdutta.ion:ion:2.+' } |
پروژه را Sync کنید قند شکن فراموش نشود.
دریافت Json با استفاده از کد زیر
1 2 3 4 5 6 7 8 9 | Ion.with(context) .load("http://example.com/thing.json") .asJsonObject() .setCallback(new FutureCallback<JsonObject>() { @Override public void onCompleted(Exception e, JsonObject result) { // do stuff with the result or error } }); |
کد بالا Json را Url بالا دریافت می کند Url فرضی است.
Post کردن Json و دریافت Json
1 2 3 4 5 6 7 8 9 10 11 12 | JsonObject json = new JsonObject(); json.addProperty("foo", "bar"); Ion.with(context) .load("http://example.com/post") .setJsonObjectBody(json) .asJsonObject() .setCallback(new FutureCallback<JsonObject>() { @Override public void onCompleted(Exception e, JsonObject result) { // do stuff with the result or error } }); |
ارسال یا Post اطلاعات به شکل application/x-www-form-urlencoded با استفاده از کد زیر
1 2 3 4 5 6 | Ion.with(getContext()) .load("https://koush.clockworkmod.com/test/echo") .setBodyParameter("goop", "noop") .setBodyParameter("foo", "bar") .asString() .setCallback(...) |
Post چندین اطلاعات
1 2 3 4 5 6 7 | Ion.with(getContext()) .load("https://koush.clockworkmod.com/test/echo") .uploadProgressBar(uploadProgressBar) .setMultipartParameter("goop", "noop") .setMultipartFile("archive", "application/zip", new File("/sdcard/filename.zip")) .asJsonObject() .setCallback(...) |
دانلود فایل با استفاده از ProgressBar
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Ion.with(context) .load("http://example.com/really-big-file.zip") // have a ProgressBar get updated automatically with the percent .progressBar(progressBar) // and a ProgressDialog .progressDialog(progressDialog) // can also use a custom callback .progress(new ProgressCallback() {@Override public void onProgress(long downloaded, long total) { System.out.println("" + downloaded + " / " + total); } }) .write(new File("/sdcard/really-big-file.zip")) .setCallback(new FutureCallback<File>() { @Override public void onCompleted(Exception e, File file) { // download done... // do stuff with the File or error } }); |
ارسال و تعیین Header در Request ها
1 2 3 4 5 6 | Ion.with(context) .load("http://example.com/test.txt") // set the header .setHeader("foo", "bar") .asString() .setCallback(...) |
لود عکس در ImageView
1 2 3 4 5 6 7 8 | Ion.with(context) .load("http://example.com/image.png") .withBitmap() .placeholder(R.drawable.placeholder_image) .error(R.drawable.error_image) .animateLoad(spinAnimation) .animateIn(fadeInAnimation) .intoImageView(imageView); |
اگر می خواهید از کد به صورت General استفاده کنید کلاس زیر را تعریف کرده و در AndroidManifest آن را به عنوان بخش اصلی معرفی کنید (android:name=”imageclass”‘)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | public interface Future<T> extends Cancellable, java.util.concurrent.Future<T> { /** * Set a callback to be invoked when this Future completes. * @param callback * @return */ public Future<T> setCallback(FutureCallback<T> callback); } Future<String> string = Ion.with(context) .load("http://example.com/string.txt") .asString(); Future<JsonObject> json = Ion.with(context) .load("http://example.com/json.json") .asJsonObject(); Future<File> file = Ion.with(context) .load("http://example.com/file.zip") .write(new File("/sdcard/file.zip")); Future<Bitmap> bitmap = Ion.with(context) .load("http://example.com/image.png") .intoImageView(imageView); |
اگر می خواهید Header را از وب سرویس دریافت کنید از کد زیر استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 | Ion.with(getContext()) .load("http://example.com/test.txt") .asString() .withResponse() .setCallback(new FutureCallback<Response<String>>() { @Override public void onCompleted(Exception e, Response<String> result) { // print the response code, ie, 200 System.out.println(result.getHeaders().code()); // print the String that was downloaded System.out.println(result.getResult()); } }); |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
یک پاسخ به “آموزش کتابخانه Ion در اندروید”