آموزش کتابخانه Ion در اندروید
آموزش کتابخانه Ion در اندروید
سلام دوستان همیشگی در این سری از آموزش برنامه نویسی اندروید به آموزش کتابخانه Ion در اندروید می پردازیم از کتابخانه ion می توانید به منظور رسیدگی به Requet های سمت سرور خود بپردازید با استفاده از کتابخانه ION می توانید عکس دانلود کنید در ImageView نمایش دهید Json را پارس کنید و کلی امکانات دیگر که با استفاده از این کتابخانه می توانید به پروژه خود اضافه کنید با ما همراه باشید.
ویژگی های کتابخانه ION در اندروید
- Caching
- پارس Json با استفاده از کتابخانه Gson
- دریافت رشته از اینترنت
- لود عکس از اینترنت
- دانلود فایل
- Post اطلاعات به سرور در اندروید
- دریافت اطلاعت در حالت فشرده Gzip
- پشتیبانی از Cookies
سریع برویم سراغ کار با کتابخانه ION
ابتدا وارد فایل Build.gradle از نوع Module شده سپس خط زیر را به بخش Dependencies اضافه کنید.
dependencies {
compile 'com.koushikdutta.ion:ion:2.+'
}
روژه را Sync کنید قند شکن فراموش نشود.
دریافت Json با استفاده از کد زیر
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
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 با استفاده از کد زیر
Ion.with(getContext())
.load("https://koush.clockworkmod.com/test/echo")
.setBodyParameter("goop", "noop")
.setBodyParameter("foo", "bar")
.asString()
.setCallback(...)
Post چندین اطلاعات
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
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 ها
Ion.with(context)
.load("http://example.com/test.txt")
// set the header
.setHeader("foo", "bar")
.asString()
.setCallback(...)
لود عکس در ImageView
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”‘)
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 را از وب سرویس دریافت کنید از کد زیر استفاده کنید.
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 در اندروید هم به پایان رسید.
موفق و پیروز باشید.