📜  如何在Android中使用Universal Image Loader库?

📅  最后修改于: 2021-05-13 15:52:48             🧑  作者: Mango

UIL(通用图像加载程序)与Picasso和Glide相似,它可以将图像从任何Web URL加载到Android的ImageView中。创建此图像加载库是为了提供功能强大,灵活且可自定义的解决方案,以从Server加载Android中的图像。该图像加载库由独立开发人员创建,并显示在GitHub的顶部列表中。 UIL(通用图像加载器)库的功能:

  • 该库提供多线程图像加载。
  • 图像缓存可以在内存和用户设备中完成。
  • 监听加载过程(包括下载进度)。
  • 每个显示图像调用都有许多可定制的功能。

分步实施

步骤1:创建一个新项目

要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。

步骤2:在build.gradle文件中添加UIL图像库的依赖项。

导航到gradle脚本,然后建立build.gradle(Module)级别。在依赖性部分的build.gradle文件中添加以下行。

步骤3:在AndroidManifest.xml文件中添加互联网权限

导航到应用>清单以打开清单文件。

XML


  
    
    
    
  
  
    
        
            
                
  
                
            
        
    
  


XML


  
    
    
  


Java
import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
  
public class MainActivity extends AppCompatActivity {
  
    private ImageView img;
    DisplayImageOptions options;
    ImageLoader imageLoader;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // initialize image loader before using
        imageLoader = ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(getApplicationContext()));
  
        // initialize imageview from activity_main.xml
        img = findViewById(R.id.idImageView);
          
        // URL for our image that we have to load..
        String imageUri = "https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200-1.png";
          
        // with below method we are setting display option for our image..
        options = new DisplayImageOptions.Builder()
                  
                // stub image will display when your image is loading
                .showStubImage(R.drawable.ic_launcher_foreground)
                  
                // below image will be displayed when the image url is empty
                .showImageForEmptyUri(R.drawable.ic_launcher_background)
                  
                // cachememory method will caches the image in users external storage
                .cacheInMemory()
                  
                // cache on disc will caches the image in users internal storage
                .cacheOnDisc()
                  
                // build will build the view for displaying image..
                .build();
        // below method will display image inside our image view..
        imageLoader.displayImage(imageUri, img, options, null);
    }
}


步骤4:在activity_main.xml中创建一个新的ImageView。

导航到应用程序> res>布局以打开activity_main.xml文件。以下是activity_main.xml文件的代码。

XML格式



  
    
    
  

步骤5:初始化ImageView并在MainActivity中使用UIL(通用图像加载器)。 Java文件

导航到应用程序> Java >您的应用程序包名称> MainActivity。 Java文件。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。

Java

import android.os.Bundle;
import android.widget.ImageView;
import androidx.appcompat.app.AppCompatActivity;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
  
public class MainActivity extends AppCompatActivity {
  
    private ImageView img;
    DisplayImageOptions options;
    ImageLoader imageLoader;
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // initialize image loader before using
        imageLoader = ImageLoader.getInstance();
        imageLoader.init(ImageLoaderConfiguration.createDefault(getApplicationContext()));
  
        // initialize imageview from activity_main.xml
        img = findViewById(R.id.idImageView);
          
        // URL for our image that we have to load..
        String imageUri = "https://www.geeksforgeeks.org/wp-content/uploads/gfg_200X200-1.png";
          
        // with below method we are setting display option for our image..
        options = new DisplayImageOptions.Builder()
                  
                // stub image will display when your image is loading
                .showStubImage(R.drawable.ic_launcher_foreground)
                  
                // below image will be displayed when the image url is empty
                .showImageForEmptyUri(R.drawable.ic_launcher_background)
                  
                // cachememory method will caches the image in users external storage
                .cacheInMemory()
                  
                // cache on disc will caches the image in users internal storage
                .cacheOnDisc()
                  
                // build will build the view for displaying image..
                .build();
        // below method will display image inside our image view..
        imageLoader.displayImage(imageUri, img, options, null);
    }
}

输出:

UIL输出

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!