ImageLoader的简单使用

本文介绍了如何使用ImageLoader库加载网络和本地图片。首先,通过在Android Studio中添加jar包或手动导入来引入ImageLoader。其次,确保在AndroidManifest.xml中添加INTERNET和WRITE_EXTERNAL_STORAGE权限。接着,进行ImageLoader的初始化。最后,展示了在Activity和Fragment中使用ImageLoader显示图片的基本步骤,包括在ViewPager中展示和自定义ImageView的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用ImageLoader来显示网络图片和本地图片,我们先简单的了解一下如何使用


1.添加jar包:在androidStudio中找到这个然后如图加入这个包


ps:也可以自己从外部导入jar包


2.在Android Manifest中加入权限:

android:name="android.permission.INTERNET" />

android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 


3.初始化ImageLoader

//实例化ImageLoader
ImageLoaderConfiguration config = new ImageLoaderConfiguration. Builder(this).build();  //这里可以自定义很多操作
ImageLoader.getInstance().init(config);  

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
.memoryCacheExtraOptions(480, 800) // default = device screen dimensions
 .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75, null)
 .taskExecutor(...) 
.taskExecutorForCachedImages(...) 
.threadPoolSize(3) // default
 .threadPriority(Thread.NORM_PRIORITY - 1) // default 
.tasksProcessingOrder(QueueProcessingType.FIFO) // default 
.denyCacheImageMultipleSizesInMemory() 
.memoryCache(new LruMemoryCache(2 * 1024 * 1024))
 .memoryCacheSize(2 * 1024 * 1024) 
.memoryCacheSizePercentage(13) // default
 .discCache(new UnlimitedDiscCache(cacheDir)) // default 
.discCacheSize(50 * 1024 * 1024)
 .discCacheFileCount(100)
 .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default
 .imageDownloader(new BaseImageDownloader(context)) // default 
.imageDecoder(new BaseImageDecoder()) // default 
.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
 .writeDebugLogs() .build();

4.DisplayImageOptions的使用介绍:根据不同的需求来配置这个用于显示图片的方法选项

DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub) // resource or drawable
.showImageForEmptyUri(R.drawable.ic_empty) // resource or drawable
.showImageOnFail(R.drawable.ic_error) // resource or drawable 
.resetViewBeforeLoading(false)// default
 .delayBeforeLoading(1000) .cacheInMemory(false) // default
 .cacheOnDisc(false) // default
.preProcessor(...) .postProcessor(...) .extraForDownloader(...)
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) //default
.bitmapConfig(Bitmap.Config.ARGB_8888) //default
 .decodingOptions(...) .displayer(newSimpleBitmapDisplayer()) // default 
.handler(new Handler()) // default
 .build();

5.可显示的Uri格式:

String imageUri = "http://site.com/image.png"; // from Web
 String imageUri = "file:///mnt/sdcard/image.png"; // from SD card 
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
 String imageUri = "assets://image.png"; // from assets 
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)

6.图片显示方法:

// Load image, decode it to Bitmap and display Bitmap ImageView
imageLoader.displayImage(imageUri, imageView, displayOptions, new ImageLoadingListener() {@Override public void onLoadingStarted(String imageUri, View view) { ... } @Override publicvoid onLoadingFailed(String imageUri, View view, FailReason failReason) { ... } @Overridepublic void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { ... }@Override public void onLoadingCancelled(String imageUri, View view) { ... } });
// Load image, decode it to Bitmap and return Bitmap to callback
ImageSize targetSize = newImageSize(120, 80); // result Bitmap will be fit to this size 
imageLoader.loadImage(imageUri,targetSize, displayOptions, new SimpleImageLoadingListener() { @Override public voidonLoadingComplete(String imageUri, View view, Bitmap loadedImage) { // Do whatever you want with Bitmap } });


7.实例:加载网络图片(http://pic.pptbz.com/pptpic/201110/20111014111307895.jpg)

Activity中初始化实例并传入图片Uri

case R.id.tv_action_three:
           Log.d("photo","tv_action_three");
//         String uriString = "http://192.168.105.100:7070";
           String uriString = "http://pic.pptbz.com/pptpic/201110/20111014111307895.jpg";
           Helper_Image.gotoBigPicture(TestActivity.this, uriString);
           break;


用一个类来处理图片的显示

public class Helper_Image {

    static int FADEINTIME = 200;
    //圆角度
    static int ROUNDED = 30;
    static int ROUNDED_CIRCLE = 360;

    /**
     * 看大图
     */
    public static void gotoBigPicture(Context context, String imageUrl) {
        if ("".equals(imageUrl)) {
//            imageUrl = "drawable://" + R.drawable.default_head_image;
            Log.d("photo","Uri为空");
        }
        ArrayList<String> lStringArrayList = new ArrayList<String>();
        lStringArrayList.add(imageUrl);
        Intent picIntent = new Intent(context, ZoomPictureActivity.class);
        picIntent.putExtra(ZoomPictureActivity.INTENT_PICTURES,lStringArrayList);  //用一个Activity去显示网络图片
        picIntent.putExtra(ZoomPictureActivity.INTENT_CURRENT_PIC, imageUrl);
        ((Activity) context).startActivity(picIntent);
    }

    /**
     * 使用ImageLoader加载图片
     *
     * @param image
     * @param imageUrl
     */
    public static void displayImage_network(ImageView image, String imageUrl) {

        DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)
                .showImageOnLoading(R.drawable.loading_pic)
                .showImageOnFail(R.drawable.load_pic_failed)
                .showImageForEmptyUri(R.drawable.load_pic_failed)
                .cacheOnDisk(true).considerExifParams(true)
//                .imageScaleType(ImageScaleType.EXACTLY)
                .resetViewBeforeLoading(true)
                .displayer(new FadeInBitmapDisplayer(FADEINTIME))
                .bitmapConfig(Bitmap.Config.RGB_565)
                .build();
        ImageLoader.getInstance().displayImage(imageUrl, image, options);

    }
}


ZoomPictureActivity:包含Fragment的适配器和ViewPager,Fregment里面放入一个ImageView用于显示图片(可以自定义一个ImageView,让其支持缩小/放大/长按保存等操作),这里不在详细叙述,使用方法为:

image = (TouchImageView) rootView.findViewById(R.id.display_picture);
        image.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                getActivity().finish();
            }
        });
String imageUrl = args.getString(ARGS_IMAGE_URL);
Helper_Image.displayImage_network(image, imageUrl);

效果图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值