Java源码示例:com.facebook.drawee.backends.pipeline.PipelineDraweeController

示例1
private void load(Uri uri, SimpleDraweeView draweeView, int width, int height) {
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setResizeOptions(new ResizeOptions(width, height))
            .setProgressiveRenderingEnabled(true)
            .setAutoRotateEnabled(true)
            .build();

    PipelineDraweeController controller =
            (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setImageRequest(request)
                    .setOldController(draweeView.getController())
                    .setAutoPlayAnimations(true)
                    .build();

    draweeView.setController(controller);
}
 
示例2
public void bindRaw(String fileName) {
    if (bindedFile != null) {
        bindedFile.detach();
        bindedFile = null;
    }
    currentId = 0;

    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(new File(fileName)))
            .setAutoRotateEnabled(true)
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setOldController(getController())
            .setImageRequest(request)
            .build();
    setController(controller);
}
 
示例3
public void bindRaw(String fileName) {
    if (bindedFile != null) {
        bindedFile.detach();
        bindedFile = null;
    }
    currentId = 0;

    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(new File(fileName)))
            .setResizeOptions(new ResizeOptions(size, size))
            .setAutoRotateEnabled(true)
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setOldController(getController())
            .setImageRequest(request)
            .build();
    setController(controller);
}
 
示例4
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    Image image = images.get(position);
    holder.image = image;
    if (image == null) {
        return;
    }
    holder.ivCheck.setVisibility(View.VISIBLE);
    holder.ivCheck.setImageResource(selectedImages.contains(image) ? R.drawable.ap_gallery_checked
            : R.drawable.ap_gallery_normal);
    int width = 100, height = 100;
    ImageRequest request =
            ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(new File(image.path)))
                    .setResizeOptions(new ResizeOptions(width, height))
                    .build();
    PipelineDraweeController controller =
            (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setOldController(holder.ivPhoto.getController())
                    .setImageRequest(request)
                    .build();
    holder.ivPhoto.setController(controller);
}
 
示例5
private PipelineDraweeControllerBuilder getFrescoControllerBuilder(DraweeView draweeView) {
    try {
        PipelineDraweeController controller = (PipelineDraweeController) draweeView.getController();
        Field mDataSourceSupplierFiled = PipelineDraweeController.class.getDeclaredField("mDataSourceSupplier");
        mDataSourceSupplierFiled.setAccessible(true);
        Supplier supplier = (Supplier) mDataSourceSupplierFiled.get(controller);
        Field mAutoField = Class.forName("com.facebook.drawee.controller.AbstractDraweeControllerBuilder$2").getDeclaredField("this$0");
        mAutoField.setAccessible(true);
        PipelineDraweeControllerBuilder builder = (PipelineDraweeControllerBuilder) mAutoField.get(supplier);
        return builder;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return null;
}
 
示例6
private void load(Uri uri, SimpleDraweeView draweeView, int width, int height) {
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setResizeOptions(new ResizeOptions(width, height))
            .setProgressiveRenderingEnabled(true)
            .setAutoRotateEnabled(true)
            .build();

    PipelineDraweeController controller =
            (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setImageRequest(request)
                    .setOldController(draweeView.getController())
                    .setAutoPlayAnimations(true)
                    .build();
    draweeView.setController(controller);
}
 
示例7
private void load(Uri uri, SimpleDraweeView draweeView, int width, int height) {
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setResizeOptions(new ResizeOptions(width, height))
            .setProgressiveRenderingEnabled(true)
            .setAutoRotateEnabled(true)
            .build();

    PipelineDraweeController controller =
            (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setImageRequest(request)
                    .setOldController(draweeView.getController())
                    .setAutoPlayAnimations(true)
                    .build();
    draweeView.setController(controller);
}
 
示例8
public static void setSupportGif(SimpleDraweeView draweeView, String url){
    PipelineDraweeController controller =
            (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setUri(url)
                    .setOldController(draweeView.getController())
                    .setAutoPlayAnimations(true) //自动播放gif动画
                    .build();
    draweeView.setController(controller);
}
 
示例9
/**
 * 渐进式加载
 *
 * @param url
 * @param draweeView
 * @return
 */
public static PipelineDraweeController getController(String url, SimpleDraweeView draweeView) {
    ImageRequest request = ImageRequestBuilder
            .newBuilderWithSource(Uri.parse(url))
            .setProgressiveRenderingEnabled(true)
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setImageRequest(request)
            .setOldController(draweeView.getController())
            .build();
    return controller;
}
 
示例10
@Override
    public void setImageURI(Uri uri) {

        ImageRequest request = ImageRequestBuilder
                .newBuilderWithSource(uri)
                .setLocalThumbnailPreviewsEnabled(true)
                .setProgressiveRenderingEnabled(false)
                .setResizeOptions(new ResizeOptions(50, 50))
                .build();
/*
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setTapToRetryEnabled(true)
                .setImageRequest(request)
                .setOldController(getController())
                .build();*/

        PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setTapToRetryEnabled(true)
                .setImageRequest(request)
                .setOldController(getController())
                .build();

        setController(controller);

        super.setImageURI(uri);
    }
 
示例11
public static void setSupportGif(SimpleDraweeView draweeView, String url) {
    LogUtils.i("JokeViewHolder", "setSupportGif:" + url);
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setUri(url)
            .setOldController(draweeView.getController())
            .setAutoPlayAnimations(true) //自动播放gif动画
            .build();
    draweeView.setController(controller);
}
 
示例12
private void   updateData() {
    user = AccountLogic.getInstance().getNowUser();
    if(user == null){
        return;
    }
    tvName.setText(user.getName());
    String url = ActivityUtil.genPic(user.getId().hashCode());
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url))
            .setPostprocessor(postprocessor)
            .build();

    PipelineDraweeController controller =
            (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setImageRequest(request)
                    .setOldController(ivBg.getController())
                    .build();
    ivBg.setController(controller);
    String avartar = "https://second.imdao.cn"+user.getAvatar();
    Timber.i("avatar:"+avartar);
    ivAvatar.setImageURI(Uri.parse(avartar));
    StringBuilder desc = new StringBuilder();
    desc.append(getString(R.string.readed)).append(" ")
            .append(user.getReadCount())
            .append("  ").append(getString(R.string.collected))
            .append(" ").append(user.getCollectCount())
            .append("  ").append(getString(R.string.share))
            .append(" ").append(user.getShareCount());
    tvSig.setText(desc);
    registerAt.setText("加入时间:"+DateUtil.getFriendlyTimeSpanByNow(user.getCreateAt()));
}
 
示例13
public void bind(Artboard artboard) {
    mArtboard = artboard;

    String url = MirrorUtils.buildArtboardHttpUrl(mDownsamplingView.getContext(), mArtboard);
    int mResizeWidth = mDownsamplingView.getDownsamplingViewWidth();
    int mResizeHeight = mDownsamplingView.getDownsamplingViewHeight();
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url))
            .setResizeOptions(new ResizeOptions(mResizeWidth, mResizeHeight))
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setOldController(mDownsamplingView.getController())
            .setImageRequest(request)
            .build();
    mDownsamplingView.setController(controller);
}
 
示例14
public void bindImage(Uri uri) {
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setResizeOptions(new ResizeOptions(previewView.getLayoutParams().width,
                    previewView.getLayoutParams().height))
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setOldController(previewView.getController())
            .setImageRequest(request)
            .setControllerListener(animationController)
            .build();
    previewView.setController(controller);
}
 
示例15
protected void onPostExecute(File result) {
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(result))
            .setResizeOptions(new ResizeOptions(previewView.getLayoutParams().width,
                    previewView.getLayoutParams().height))
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setOldController(previewView.getController())
            .setImageRequest(request)
            .build();
    previewView.setController(controller);
}
 
示例16
public void bind(String path) {
    data = path;
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(new File(path)))
            .setResizeOptions(new ResizeOptions(v.getLayoutParams().width,
                    v.getLayoutParams().height))
            .build();
    PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
            .setOldController(v.getController())
            .setImageRequest(request)
            .build();
    v.setController(controller);
    chb.setChecked(selected.contains(data));
}
 
示例17
public ImagePerfMonitor(
    MonotonicClock monotonicClock,
    PipelineDraweeController pipelineDraweeController,
    Supplier<Boolean> asyncLogging) {
  mMonotonicClock = monotonicClock;
  mPipelineDraweeController = pipelineDraweeController;
  mImagePerfState = new ImagePerfState();
  mAsyncLogging = asyncLogging;
}
 
示例18
@Before
public void setUp() {
  mMonotonicClock = mock(MonotonicClock.class);
  mController = mock(PipelineDraweeController.class);
  when(mController.getId()).thenReturn(CONTROLLER_ID);

  mImagePerfMonitor = new ImagePerfMonitor(mMonotonicClock, mController, Suppliers.BOOLEAN_FALSE);
}
 
示例19
public void bind(FileReference fileReference, int size) {

        if (this.fileReference != null && this.fileReference.equals(fileReference)) {
            return;
        }

        if (bindedFile != null) {
            bindedFile.detach();
            bindedFile = null;
        }

        setImageURI(null);

        this.fileReference = fileReference;

        bindedFile = messenger().bindFile(fileReference, true, new FileVMCallback() {

            private boolean isFastThumbLoaded = false;

            private void checkFastThumb() {
                if (!isFastThumbLoaded) {
                    isFastThumbLoaded = true;
//                    if (sticker.getThumb() != null) {
//                        fastThumbLoader.request(sticker.getThumb());
//                    }
                }
            }

            @Override
            public void onNotDownloaded() {
                checkFastThumb();
            }

            @Override
            public void onDownloading(float progress) {
                checkFastThumb();
            }

            @Override
            public void onDownloaded(FileSystemReference reference) {
                imageFile = new File(reference.getDescriptor());
                ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(imageFile))
                        .setAutoRotateEnabled(true)
                        .build();
                PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                        .setOldController(getController())
                        .setImageRequest(request)
                        .build();
                setController(controller);
                loaded = true;


            }
        });
    }
 
示例20
public void bind(Avatar avatar) {
    // Same avatar
    if (avatar != null && getImage(avatar) != null
            && getImage(avatar).getFileReference().getFileId() == currentId) {
        return;
    }

    fastThumbLoader = new FastThumbLoader(this);
    fastThumbLoader.setBlur(10);

    if (bindedFile != null) {
        bindedFile.detach();
        bindedFile = null;
    }

    setImageURI(null);

    if (avatar == null || getImage(avatar) == null) {
        currentId = 0;
        return;
    }
    currentId = getImage(avatar).getFileReference().getFileId();

    bindedFile = messenger().bindFile(getImage(avatar).getFileReference(), true, new FileVMCallback() {
        @Override
        public void onNotDownloaded() {

        }

        @Override
        public void onDownloading(float progress) {

        }

        @Override
        public void onDownloaded(FileSystemReference reference) {

            blurActor.send(new BlurActor.RequestBlur(reference.getDescriptor(), 10, new BlurActor.BluredListener() {
                @Override
                public void onBlured(final File f) {
                    ((BaseActivity)getContext()).runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(f))
                                    .setResizeOptions(new ResizeOptions(Screen.getWidth(), Screen.getHeight()))
                                    .build();
                            PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                                    .setOldController(getController())
                                    .setImageRequest(request)
                                    .build();
                            setController(controller);
                        }
                    });

                }
            }));
        }
    });
}
 
示例21
public void bind(Avatar avatar, String title, int id) {
    // Same avatar
    if (avatar != null && getImage(avatar) != null
            && getImage(avatar).getFileReference().getFileId() == currentId) {
        return;
    }

    getHierarchy().setPlaceholderImage(new AvatarPlaceholderDrawable(title, id, placeholderTextSize, getContext()));

    if (bindedFile != null) {
        bindedFile.detach();
        bindedFile = null;
    }

    setImageURI(null);

    if (avatar == null || getImage(avatar) == null) {
        currentId = 0;
        return;
    }
    currentId = getImage(avatar).getFileReference().getFileId();

    bindedFile = messenger().bindFile(getImage(avatar).getFileReference(), true, new FileVMCallback() {
        @Override
        public void onNotDownloaded() {

        }

        @Override
        public void onDownloading(float progress) {

        }

        @Override
        public void onDownloaded(FileSystemReference reference) {


            ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.fromFile(new File(reference.getDescriptor())))
                    .setResizeOptions(new ResizeOptions(size, size))
                    .build();
            PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
                    .setOldController(getController())
                    .setImageRequest(request)
                    .build();
            setController(controller);
        }
    });
}