UIL(通用图像加载程序)与Picasso和Glide相似,它可以将图像从任何Web URL加载到Android的ImageView中。创建此图像加载库是为了提供功能强大,灵活且可自定义的解决方案,以从Server加载Android中的图像。该图像加载库由独立开发人员创建,并显示在GitHub的顶部列表中。 UIL(通用图像加载器)库的功能:
- 该库提供多线程图像加载。
- 图像缓存可以在内存和用户设备中完成。
- 监听加载过程(包括下载进度)。
- 每个显示图像调用都有许多可定制的功能。
Note that we are going to implement this project using the Java language.
分步实施
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
步骤2:在build.gradle文件中添加UIL图像库的依赖项。
导航到gradle脚本,然后建立build.gradle(Module)级别。在依赖性部分的build.gradle文件中添加以下行。
implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
步骤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);
}
}
Note: All drawables are present in the drawable folder. You can add the drawable in the drawable folder. To access the drawable folder. Navigate to app > res > drawables > this folder is having all your drawables.