Java 类com.bumptech.glide.load.resource.file.FileToStreamDecoder 实例源码

项目:q-mail    文件:ContactPictureLoader.java   
private void loadFallbackPicture(Address address, ImageView imageView) {
    Context context = imageView.getContext();

    Glide.with(context)
            .using(new FallbackGlideModelLoader(), FallbackGlideParams.class)
            .from(FallbackGlideParams.class)
            .as(Bitmap.class)
            .transcode(new BitmapToGlideDrawableTranscoder(context), GlideDrawable.class)
            .decoder(new FallbackGlideBitmapDecoder(context))
            .encoder(new BitmapEncoder(Bitmap.CompressFormat.PNG, 0))
            .cacheDecoder(new FileToStreamDecoder<>(new StreamBitmapDecoder(context)))
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .load(new FallbackGlideParams(address))
            // for some reason, following 2 lines fix loading issues.
            .dontAnimate()
            .override(mPictureSizeInPx, mPictureSizeInPx)
            .into(imageView);
}
项目:glide-support    文件:TestFragment.java   
@SuppressWarnings("unchecked")
@Override protected void load(Context context) {
    GenericRequestBuilder<Bitmap, Bitmap, Bitmap, Bitmap> glide = Glide
            .with(context)
            .using(new PassthroughModelLoader<Bitmap, Bitmap>(), Bitmap.class)
            .from(Bitmap.class)
            .as(Bitmap.class)
            .decoder(new BitmapBitmapResourceDecoder(context))
            .cacheDecoder(new FileToStreamDecoder<Bitmap>(new StreamBitmapDecoder(context)))
            .encoder(new BitmapEncoder())
            // or .diskCacheStrategy(DiskCacheStrategy.NONE) instead of last 2
            ;

    // simulate a bitmap input
    Drawable drawable = ContextCompat.getDrawable(context, android.R.drawable.sym_def_app_icon);
    Bitmap bitmap = Bitmap.createBitmap(
            drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap);
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);

    glide
            .clone()
            .load(bitmap)
            .signature(new StringSignature("android.R.drawable.sym_def_app_icon")) // required for caching
            .diskCacheStrategy(DiskCacheStrategy.NONE) // but can't really cache it, see #122 comments
            .transform(new CenterCrop(context))
            .into(imageView)
    ;
}
项目:glide-support    文件:TestFragment_Inclusive.java   
@Override public void onAttach(Context context) {
    super.onAttach(context);
    BitmapPool pool = Glide.get(context).getBitmapPool();
    StreamBitmapDecoder bitmapDecoder = new StreamBitmapDecoder(Downsampler.AT_LEAST, pool, DecodeFormat.DEFAULT);
    paletteLoad = Glide
            .with(this)
            .using(new StreamUriLoader(context), InputStream.class)
            .from(Uri.class)
            .as(PaletteBitmap.class)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .encoder(new PaletteBitmapEncoder(new BitmapEncoder(), new PaletteEncoder()))
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(
                    new PaletteBitmapDecoder(pool, bitmapDecoder, new PaletteDecoder())))
            .dontAnimate()
            .skipMemoryCache(true) // debug to always go for disk
    ;
}
项目:glide-support    文件:TestFragment_Separate.java   
@Override public void onAttach(Context context) {
    super.onAttach(context);
    paletteLoad = Glide
            .with(this)
            .using(new StreamUriLoader(context), InputStream.class)
            .from(Uri.class)
            .as(Palette.class)
            .diskCacheStrategy(DiskCacheStrategy.ALL)
            .encoder(new PaletteCacheEncoder(new PaletteEncoder()))
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(
                    new PaletteCacheDecoder(new PaletteDecoder(), new StreamBitmapDecoder(
                            Downsampler.AT_MOST, Glide.get(context).getBitmapPool(), DecodeFormat.DEFAULT))))
            .override(256, 256) // rough size of the Bitmap to generate Palette from 
            .dontTransform() // default, but be explicit
            .dontAnimate() // default, but be explicit
            .skipMemoryCache(true) // debug to always go for disk
    ;
}
项目:glide-support    文件:GeneratingAdapter.java   
public GeneratingAdapter(final Context context) {
    generator = Glide // this part should be cleaner in Glide 4.0, but that's not released yet
                      .with(context)
                      .using(new GeneratePassthroughModelLoader(), GenerateParams.class)          // custom class
                      .from(GenerateParams.class)
                      .as(Bitmap.class)
                      .transcode(new BitmapToGlideDrawableTranscoder(context), GlideDrawable.class)     // builtin
                      .decoder(new GenerateBitmapResourceDecoder(context))                        // custom class
                      .encoder(new BitmapEncoder(Bitmap.CompressFormat.PNG, 0/*ignored for lossless*/)) // builtin
                      .cacheDecoder(new FileToStreamDecoder<Bitmap>(new StreamBitmapDecoder(context)))  // builtin
    //.placeholder(new ColorDrawable(Color.YELLOW)) // you can pre-set placeholder and error
    //.error(new ColorDrawable(Color.RED))          // so it's easier when binding
    //.diskCacheStrategy(DiskCacheStrategy.NONE)    // only for debugging to always regenerate
    //.skipMemoryCache(true)                        // only for debugging to always regenerate
    ;
}
项目:incubator-taverna-mobile    文件:ImageZoomPresenter.java   
@Override
public void attachView(ImageZoomMvpView mvpView) {

    super.attachView(mvpView);

    requestBuilder = Glide.with(getMvpView().getAppContext())
            .using(Glide.buildStreamModelLoader(Uri.class,
                    getMvpView().getAppContext()), InputStream.class)
            .from(Uri.class)
            .as(SVG.class)
            .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<SVG>(new SvgDecoder()))
            .decoder(new SvgDecoder())
            .placeholder(R.drawable.placeholder)
            .error(R.drawable.placeholder)
            .override(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL)
            .animate(android.R.anim.fade_in);

}
项目:xamoom-android-sdk    文件:ContentBlock3ViewHolder.java   
public ContentBlock3ViewHolder(View itemView, Context context,
                               OnContentBlock3ViewHolderInteractionListener listener) {
  super(itemView);
  mContext = context;
  mTitleTextView = (TextView) itemView.findViewById(R.id.titleTextView);
  mCopyrightTextView = (TextView) itemView.findViewById(R.id.copyrightTextView);
  mImageView = (ImageView) itemView.findViewById(R.id.imageImageView);
  mImageProgressBar = (ProgressBar) itemView.findViewById(R.id.imageProgressBar);
  mListener = listener;

  mFileManager = FileManager.getInstance(context);

  SvgDrawableTranscoder svgDrawableTranscoder =  new SvgDrawableTranscoder();
  svgDrawableTranscoder.setmDeviceWidth(mContext.getResources().getDisplayMetrics().widthPixels);

  requestBuilder = Glide.with(mContext)
      .using(Glide.buildStreamModelLoader(Uri.class, mContext), InputStream.class)
      .from(Uri.class)
      .as(SVG.class)
      .transcode(svgDrawableTranscoder, PictureDrawable.class)
      .sourceEncoder(new StreamEncoder())
      .cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder()))
      .decoder(new SvgDecoder())
      .listener(new SvgSoftwareLayerSetter<Uri>());
}
项目:udacity-p3    文件:SvgImageLoader.java   
public static SvgImageLoader getInstance(Context context) {
    if (mInstance == null) {
        mInstance = new SvgImageLoader();
        genericRequestBuilder = Glide.with(context)
                .using(Glide.buildStreamModelLoader(Uri.class, context), InputStream.class)
                .from(Uri.class)
                .as(SVG.class)
                .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
                .sourceEncoder(new StreamEncoder())
                .cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder()))
                .decoder(new SvgDecoder())
                .listener(new SvgSoftwareLayerSetter<>());
    }
    return mInstance;
}
项目:AndroidBaseApplication    文件:CountriesAdapter.java   
@Inject
public CountriesAdapter (@ApplicationContext Context applicationContext)
{
    countryList = new ArrayList<>( );
    context = applicationContext;
    requestBuilder = Glide.with( context )
            .using( Glide.buildStreamModelLoader( Uri.class, context ), InputStream.class )
            .from( Uri.class )
            .as( SVG.class )
            .transcode( new SvgDrawableTranscoder( ), PictureDrawable.class )
            .sourceEncoder( new StreamEncoder( ) )
            .cacheDecoder( new FileToStreamDecoder<SVG>( new SvgDecoder( ) ) )
            .decoder( new SvgDecoder( ) )
            .placeholder( R.mipmap.ic_launcher )
            .error( android.R.drawable.stat_notify_error )
            .animate( android.R.anim.fade_in )
            .listener( new SvgSoftwareLayerSetter<Uri>( ) );
}
项目:glide-support    文件:TestFragment.java   
@Override protected void load(Context context) throws Exception {
    String model = "http://.../....dng";
    //File model = ...;
    Glide
            .with(context)
            .load(model)
            .asBitmap()
            .imageDecoder(new RawStreamDecoder(context))
            .encoder(new RawStreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(new RawStreamDecoder(context)))
            .into(imageView)
    ;
}
项目:Gallery    文件:ViewerModule.java   
@Singleton
@Provides
GenericRequestBuilder<Media, InputStream, byte[], GifDrawable> provideGifRequestBuilder(
        RequestManager requestManager) {

    return requestManager.using(new MediaLoader(mView), InputStream.class)
            .from(Media.class)
            .as(byte[].class)
            .transcode(new GifDrawableBytesTranscoder(), GifDrawable.class)
            .diskCacheStrategy(DiskCacheStrategy.SOURCE)
            .decoder(new StreamByteArrayResourceDecoder())
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(new StreamByteArrayResourceDecoder()));
}
项目:stepik-android    文件:GlideSvgRequestFactory.java   
public static GenericRequestBuilder<Uri, InputStream, SVG, PictureDrawable> create(Context context, Drawable placeholder) {
    return Glide.with(context.getApplicationContext())
            .using(Glide.buildStreamModelLoader(Uri.class, context), InputStream.class)
            .from(Uri.class)
            .as(SVG.class)
            .transcode(new SvgDrawableTranscoder(), PictureDrawable.class)
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(new SvgDecoder()))
            .decoder(new SvgDecoder())
            .placeholder(placeholder)
            .listener(new SvgSoftwareLayerSetter());
}
项目:MoeGallery    文件:MainModule.java   
@Singleton
@Provides
GenericRequestBuilder<GlideUrl, InputStream, byte[], GifDrawable> provideGifRequestBuilder(
        RequestManager requestManager, OkHttpClient okHttpClient) {

    return requestManager.using(new OkHttpUrlLoader(okHttpClient), InputStream.class)
            .from(GlideUrl.class)
            .as(byte[].class)
            .transcode(new GifDrawableBytesTranscoder(), GifDrawable.class)
            .diskCacheStrategy(DiskCacheStrategy.SOURCE)
            .decoder(new StreamByteArrayResourceDecoder())
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(new StreamByteArrayResourceDecoder()));
}
项目:hipda    文件:ImageViewerAdapter.java   
@Override
public Object instantiateItem(ViewGroup container, int position) {

    final ImageViewerLayout imageLayout = new ImageViewerLayout(mActivity);
    final ContentImg contentImg = mImages.get(position);
    final String imageUrl = contentImg.getContent();
    ImageInfo imageInfo = ImageContainer.getImageInfo(imageUrl);

    //ScaleImageView has about 100ms delay, so show image with normal ImageView first
    if (mFirstShow) {
        mFirstShow = false;
        if (!imageInfo.isGif() && GlideHelper.isOkToLoad(mActivity)) {
            ImageInfo thumbInfo = ImageContainer.getImageInfo(contentImg.getThumbUrl());
            ImageInfo info = thumbInfo.isReady() ? thumbInfo : imageInfo;
            //load argument must match ThreadDetailFragment to hit memory cache
            if (info.isReady()) {
                Glide.with(mActivity)
                        .load(info.getUrl())
                        .asBitmap()
                        .cacheDecoder(new FileToStreamDecoder<>(new ThreadImageDecoder(imageInfo)))
                        .imageDecoder(new ThreadImageDecoder(imageInfo))
                        .diskCacheStrategy(DiskCacheStrategy.ALL)
                        .into(new GlideBitmapTarget(imageLayout.getGlideImageView(), info.getDisplayWidth(), info.getDisplayHeight()));
            }
        }
    }

    if (!imageInfo.isReady() || !(new File(imageInfo.getPath())).exists()) {
        imageLayout.getProgressBar().setVisibility(View.VISIBLE);
        imageLayout.getProgressBar().setIndeterminate(true);
        JobMgr.addJob(new GlideImageJob(imageUrl, JobMgr.PRIORITY_HIGH, mSessionId, true));
    } else {
        displayImage(imageLayout, imageUrl);
    }
    imageLayout.setUrl(imageUrl);
    container.addView(imageLayout);
    imageViewMap.put(imageUrl, imageLayout);
    return imageLayout;
}
项目:hipda    文件:ThreadImageLayout.java   
private void loadImage() {
    ImageInfo imageInfo = ImageContainer.getImageInfo(mUrl);
    mProgressBar.setVisibility(View.GONE);
    if (imageInfo.getStatus() == ImageInfo.SUCCESS) {
        mTextView.setVisibility(GONE);
        if (getLayoutParams().height != imageInfo.getDisplayHeight()) {
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, imageInfo.getDisplayHeight());
            setLayoutParams(params);
        }
        if (imageInfo.getWidth() >= MIN_WIDTH || imageInfo.isGif()) {
            mImageView.setOnLongClickListener(new OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    showImageActionDialog();
                    return true;
                }
            });
        }

        if (imageInfo.isGif()) {
            mRequestManager
                    .load(mUrl)
                    .asBitmap()
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .transform(new GifTransformation(getContext()))
                    .into(new GlideBitmapTarget(mImageView, imageInfo.getDisplayWidth(), imageInfo.getDisplayHeight()));
        } else {
            mRequestManager
                    .load(mUrl)
                    .asBitmap()
                    .cacheDecoder(new FileToStreamDecoder<>(new ThreadImageDecoder(imageInfo)))
                    .imageDecoder(new ThreadImageDecoder(imageInfo))
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .into(new GlideBitmapTarget(mImageView, imageInfo.getDisplayWidth(), imageInfo.getDisplayHeight()));
        }
    } else {
        mImageView.setImageResource(R.drawable.image_broken);
    }
}
项目:glide-support    文件:TestFragment.java   
@Override public void onAttach(Context context) {
    super.onAttach(context);
    BitmapPool pool = Glide.get(context).getBitmapPool();
    // default decoder, this is the base complexity Glide.with.load.into() hides from you
    GifBitmapWrapperStreamResourceDecoder decoder = new GifBitmapWrapperStreamResourceDecoder(
            new GifBitmapWrapperResourceDecoder(
                    new ImageVideoBitmapDecoder(
                            new StreamBitmapDecoder(pool),
                            new FileDescriptorBitmapDecoder(context)
                    ),
                    new GifResourceDecoder(context, pool),
                    pool
            )
    );

    // all the defaults hardcoded here in order to end up with a normal Drawable instead of a GlideDrawable
    urlGlide = Glide
            .with(this)
            .using(new StreamStringLoader(getActivity()), InputStream.class)
            .from(String.class)
            .as(GifBitmapWrapper.class)
            .transcode(new GeneralizingTranscoder<GifBitmapWrapper, GlideDrawable, Drawable>(
                            new GifBitmapWrapperDrawableTranscoder(new GlideBitmapDrawableTranscoder(context))),
                    Drawable.class)
            .decoder(decoder)
            .sourceEncoder(new StreamEncoder())
            .cacheDecoder(new FileToStreamDecoder<>(decoder))
            .animate(new AlwaysCrossFade<>(true))
            .encoder(new GifBitmapWrapperResourceEncoder(new BitmapEncoder(), new GifResourceEncoder(pool)))
            .diskCacheStrategy(DiskCacheStrategy.ALL) // just to demonstrate it's working, pick your preference
            .transform(new GifBitmapWrapperTransformation(pool, new FitCenter(context))) // == .fitCenter()
            .listener(new LoggingListener<String, Drawable>("url")) // debug
    ;
    // see https://github.com/bumptech/glide/issues/122#issuecomment-99629392
    drawableGlide = Glide
            .with(this)
            .using(new PassthroughModelLoader<Drawable, Drawable>(), Drawable.class)
            .from(Drawable.class)
            .as(Drawable.class)
            // this works even if the drawables don't behave well regarding constantState.newDrawable
            // Beware: might be problematic if constant state is supported, but altered (e.g. color filters)
            .decoder(new SimpleResourceDecoder<Drawable>()) // prefer DrawableResourceDecoder if possible!
            .animate(new AlwaysCrossFade<>(true))
            .diskCacheStrategy(DiskCacheStrategy.NONE)
            .listener(new LoggingListener<Drawable, Drawable>("drawable")) // debug
    ;

    // prevents null check the first time
    // don't forge to null everything out explicitly (error/placeholder/fallback/thumbnail), if they're set above
    lastLoad = urlGlide.clone().load(null).listener(null).dontAnimate();
}