【问题标题】:SetImageview resource from image on cache downloaded by UIL lib来自 UIL lib 下载的缓存上的图像的 SetImageview 资源
【发布时间】:2016-12-29 03:58:20
【问题描述】:

实际上我正在使用 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);
}

【问题讨论】:

    标签: java android universal-image-loader


    【解决方案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">
    

    【讨论】:

      【解决方案2】:

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

       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);
      

      【讨论】:

      • 为什么你不使用 Picassso lib..??
      • 非常感谢,互联网连接出现问题。
      猜你喜欢
      • 2014-12-31
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 2017-07-12
      • 2015-07-07
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多