آموزش کتاب خانه universal image loader در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش کتاب خانه universal image loader در برنامه نویسی اندروید می پردازیم از این کتاب خانه می توانید به سادگی عکس ها را بارگذاری (لود) کنید چه از سطح وب یا از پوشه های داخلی برنامه و این کتاب خانه قابلیت caching عکس را نیز دارد در ادامه ویژگی های دیگر آن را نیز بررسی خواهیم کرد با ما همراه باشید.
مزیت
- بسیار سریع
- پشتیبانی از قابلیت caching
- پشتیبانی از api 2 به بالا !
- حجم بسیار پایین کتاب خانه
معایب
- ندارد !
ابتدا باید وارد فایل Build.gradle از نوع Module شده سپس در بخش dependencies خط زیر را اضافه کنید.
1 | compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5' |
سپس پروژه را sync کنید.
وارد فایل activity_main.xml شده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/root_view" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:orientation="vertical"> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout> |
برای اینکه که هر عکس در یک صفحه قرار بگیرد یک آداپتور سفارشی درست می کنیم.
باید یک فایل به نام viewpager_item.xml در layout خود ایجاد کرده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 | <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/imageView" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> |
یک فایل به نام ViewPagerAdapter.java ایجاد کرده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.ObjectOutputStream; /** * Created by JFP on 13-Apr-17. */ public class ViewPagerAdapter extends PagerAdapter { Activity activity; String[] images; ImageLoader imageLoader; LayoutInflater inflater; public ViewPagerAdapter(Activity activity,String[] images,ImageLoader imageLoader){ this.activity=activity; this.images=images; this.imageLoader=imageLoader; } @Override public int getCount() { return images.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { inflater=(LayoutInflater)activity.getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View itemView = inflater.inflate(R.layout.viewpager_item,container,false); ImageView imageView=(ImageView)itemView.findViewById(R.id.imageView); imageLoader.displayImage(images[position],imageView); container.addView(itemView); return itemView; } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView((View)object); } } |
بعد از اینکار وارد فایل AndroidManifest.xml شده و دسترسی های زیر را اضافه کنید.
1 2 | <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
و در آخر وارد فایل MainActivity.java شده و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | package ir.programchi; import android.os.Bundle; import android.support.v4.app.BundleCompat; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.View; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; public class MainActivity extends AppCompatActivity { ViewPager viewPager; ViewPagerAdapter adapter; private String[] images = { "https://www.smashingmagazine.com/wp-content/uploads/2015/06/10-dithering-opt.jpg", "https://www.w3schools.com/css/img_fjords.jpg", "https://cdn.athemes.com/wp-content/uploads/Original-JPG-Image.jpg", "http://www.webpage-maker.com/guide/images/200821911435669_2.jpg" }; @Override protected void onCreate(Bundle SavedInstanceState){ super.onCreate(SavedInstanceState); setContentView(R.layout.activity_main); ImageLoaderConfiguration config=new ImageLoaderConfiguration.Builder(this).build(); ImageLoader.getInstance().init(config); viewPager=(ViewPager)findViewById(R.id.viewPager); adapter= new ViewPagerAdapter(MainActivity.this,images,ImageLoader.getInstance()); viewPager.setAdapter(adapter); } } |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
سلام ممنون به خاطر اموزش کاربردی ، من خط به خط اموزش رو رفتم منتها کش نکرد،یعنی اینترنت رو قطع میکنم از حافظه نخواند.