加载第一个模糊图像

时间:2018-07-13 11:32:28

标签: android tags imageview

如何在100%加载原始图像之前从类似Instagram的URL加载图像?如何获得模糊图像并将其加载到imageview中?

我尝试一个部门。滑行

GlideApp.with((Activity) context)
    .load(video.video_thumnail)
    .centerCrop()
    .transition(DrawableTransitionOptions.withCrossFade())
    .skipMemoryCache(true)  //No memory cache
    .diskCacheStrategy(DiskCacheStrategy.NONE)   //No disk cache
    .listener(new RequestListener<Drawable>() {
        @Override
        public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
            return false;
        }

        @Override
        public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
            mainViewHolder.imgVideoImage.setImageDrawable(resource);
            return true;
        }
    })
    .into(mainViewHolder.imgVideoImage);

2 个答案:

答案 0 :(得分:1)

您应该将Fresco用作Facebook制作的很棒的图像加载库,它具有在下载实际的全分辨率图像时加载低质量的占位符图像的功能。

但是问题是,您需要在可以加载占位符图像的位置放置一个小缩略图,例如 Instagram 之类的应用具有较大的数据库,其中的图像具有不同的压缩率。

一旦有了,您就可以像这样使用DraweeController对象将图像加载到DraweeView

DraweeController controller = Fresco.newDraweeControllerBuilder()
                    .setLowResImageRequest(ImageRequest.fromUri(YOUR_LOW_RES_URL))
                    .setImageRequest(ImageRequest.fromUri(YOUR_HIGH_RES_URL))
                    .setOldController(draweeView.getController())
                    .build();
            draweeView.getHierarchy().setProgressBarImage(new FrescoCircularImageLoader());
            //Assigning the controller to DraweeView 
            draweeView.setController(controller);

答案 1 :(得分:0)

如果您希望从url获得的所有图像都先模糊后再加载到imageView中,则必须使用Android NDK和OpenCV