来自UIL lib下载的缓存上的图像的SetImageview资源

时间:2016-12-29 03:58:20

标签: java android universal-image-loader

实际上我正在使用UIL从我的网址下载图片。我使用下面的代码下载。但不是我无法获得如何显示在我的Mainactivity中下载的图像。我注意到的一件事是它在缓存中下载图像,所以我得到该文件的路径为/ storage / android / data / test / cache / 1235456。现在可以指导我如何设置此路径到图像源,以便我可以在应用程序启动期间加载。或者还有其他更好的方法将这些图像放在imageview中。我读了UIL的代码和他们的示例应用程序,有点困惑。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView ivUIL = (ImageView) findViewById(R.id.imageview1);
    String url = "myurl";
    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).build();
    ImageLoader.getInstance().init(config);
    ImageLoader.getInstance().displayImage(url,ivUIL);
}

2 个答案:

答案 0 :(得分:1)

使用以下类使用UIL加载图像

<强> AnimateFirstDisplayListener.java

public class AnimateFirstDisplayListener extends SimpleImageLoadingListener {

    public static final List<String> displayedImages = Collections
            .synchronizedList(new LinkedList<String>());

    @Override
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
        if (loadedImage != null) {
            ImageView imageView = (ImageView) view;
            boolean firstDisplay = !displayedImages.contains(imageUri);
            if (firstDisplay) {
                FadeInBitmapDisplayer.animate(imageView, 500);
                displayedImages.add(imageUri);
            }
        }
    }
}

<强> DisplayImageOption.java

public class DisplayImageOption {

    public static DisplayImageOptions getDisplayImage() {

        DisplayImageOptions options = new DisplayImageOptions.Builder().showImageOnLoading(R.mipmap.ic_launcher)
                .showImageForEmptyUri(R.mipmap.ic_launcher).showImageOnFail(R.mipmap.ic_launcher)
                .cacheInMemory(true).cacheOnDisk(true).considerExifParams(true).build();

        // .displayer(new RoundedBitmapDisplayer(0))

        return options;

    }
}

<强> UILApplication.java

public class UILApplication extends Application {

    public UILApplication() {
        super();
    }

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        initImageLoader(getApplicationContext());
    }

    public static void initImageLoader(Context context) {
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                .threadPriority(Thread.NORM_PRIORITY - 2).denyCacheImageMultipleSizesInMemory()
                .diskCacheFileNameGenerator(new Md5FileNameGenerator()).diskCacheSize(50 * 1024 * 1024)
                .tasksProcessingOrder(QueueProcessingType.LIFO).writeDebugLogs().build();

        ImageLoader.getInstance().init(config);
    }

}
  

最后使用下面的代码加载图片

/*To Apply in Code*/
ImageLoader.getInstance().displayImage("Your_Url_of_Image"
    , imageView
    , DisplayImageOption.getDisplayImage(),
    new AnimateFirstDisplayListener());
  

不要忘记在AndroidManifest文件中编写应用程序名称

<application
    android:name="com.example.UILApplication"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

答案 1 :(得分:0)

Panache你可以试试这个可以帮助我..

 ImageView   ivUIL = (ImageView) findViewById(R.id.ivUIL);

 String url = "http://innovativedevicesapps.me/Images/big banner.jpg";


 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()).build();
    ImageLoader.getInstance().init(config);
    ImageLoader.getInstance().displayImage(GlobleArray.array.get(position).getStrUrl(), ivUIL);

  ImageLoader.getInstance().displayImage(url , ivUIL);