GVKun编程网logo

com.facebook.imagepipeline.image.ImageInfo的实例源码(facebook源代码)

21

在这篇文章中,我们将为您详细介绍com.facebook.imagepipeline.image.ImageInfo的实例源码的内容,并且讨论关于facebook源代码的相关问题。此外,我们还会涉及一

在这篇文章中,我们将为您详细介绍com.facebook.imagepipeline.image.ImageInfo的实例源码的内容,并且讨论关于facebook源代码的相关问题。此外,我们还会涉及一些关于com.facebook.animated.webp.WebPImage的实例源码、com.facebook.imagepipeline.animated.base.AnimatedDrawable的实例源码、com.facebook.imagepipeline.animated.base.AnimatedImageFrame的实例源码、com.facebook.imagepipeline.animated.base.AnimatedImageResult的实例源码的知识,以帮助您更全面地了解这个主题。

本文目录一览:

com.facebook.imagepipeline.image.ImageInfo的实例源码(facebook源代码)

com.facebook.imagepipeline.image.ImageInfo的实例源码(facebook源代码)

项目:RunMap    文件:SplashActivity.java   
@Override
public void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    ButterKnife.bind(this);
    Uri uri = Uri.parse("asset:///splash.webp");
    mSplashPresenter = new SplashPresenterImpl(this);
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setUri(uri)
            .setAutoplayAnimations(true)
            .setControllerListener(new BaseControllerListener<ImageInfo>(){
                @Override
                public void onFinalimageset(String id,@Nullable ImageInfo imageInfo,@Nullable Animatable animatable) {
                    super.onFinalimageset(id,imageInfo,animatable);
                    mSplashPresenter.startCountDown(1);
                }
            })
            .build();
    splashDraweee.setController(controller);
}
项目:react-native-udesk    文件:UdeskUtil.java   
public static void loadImage(final PhotoDraweeView mPhotoDraweeView,Uri uri) {
    PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder();
    controller.setUri(uri);
    controller.setAutoplayAnimations(true);
    controller.setoldController(mPhotoDraweeView.getController());
    controller.setControllerListener(new BaseControllerListener<ImageInfo>() {
        @Override
        public void onFinalimageset(String id,ImageInfo imageInfo,Animatable animatable) {
            super.onFinalimageset(id,animatable);
            if (imageInfo == null || mPhotoDraweeView == null) {
                return;
            }
            mPhotoDraweeView.update(imageInfo.getWidth(),imageInfo.getHeight());
        }
    });
    mPhotoDraweeView.setController(controller.build());
}
项目:android-photo-picker    文件:PhotoDraweeView.java   
public void loadImage(String url,String lowurl,int placeHolderResId,int errorResId,ScalingUtils.ScaleType scaleType){
    final boolean isHttp = url.startsWith("http");
    Uri uri = isHttp ? Uri.parse(url) :  Uri.fromFile(new File(url));
    PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder()
         .setimageRequest(ImageRequest.fromUri(uri));
    if(lowurl!=null &&  lowurl.startsWith("http")) {
        controller .setLowResImageRequest(ImageRequest.fromUri(lowurl));
    }
    getHierarchy().setActualImageScaleType(scaleType);
                    // controller.setUri(URI);
    getHierarchy().setPlaceholderImage(getResources().getDrawable( placeHolderResId ),scaleType);
    getHierarchy().setFailureImage(getResources().getDrawable(errorResId),scaleType);
    controller.setoldController(this.getController())
         .setControllerListener(new BaseControllerListener<ImageInfo>() {
             @Override
             public void onFinalimageset(String id,Animatable animatable) {
                 if (imageInfo == null) {
                     return;
                 }
                 PhotoDraweeView.this.update(imageInfo.getWidth(),imageInfo.getHeight());
             }
         });
    this.setController(controller.build());
}
项目:Li-MVPArms    文件:FrescoHelper.java   
/**
     * 图像选项类
     * @param uri 图片路径
     * @param oldController DraweeView.getoldcontroller
     * @param controllerListener 监听
     * @return
     */
    public static DraweeController getimageViewController(String uri,DraweeController oldController,ControllerListener<ImageInfo> controllerListener) {
        PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder();
        if (!TextUtils.isEmpty(uri)) {
//          Logger.d("StringUtils.utf8Encode(uri)"+StringUtils.utf8Encode(uri));
            builder.setUri(Uri.parse(uri));
        }
        if (oldController != null) {
            builder.setoldController(oldController);
        }
        if (controllerListener != null) {
            builder.setControllerListener(controllerListener);
        }
        return builder.build();
    }
项目:android-base    文件:FrescoUtils.java   
/**
 * showThumb
 *
 * @param draweeView     draweeView
 * @param url            url
 * @param resizeWidthDp  resizeWidth
 * @param resizeHeightDp resizeHeight
 */
public static void showThumb(SimpleDraweeView draweeView,String url,int resizeWidthDp,int resizeHeightDp) {
    try {
        if (!isInit)
            return;
        if (url == null || "".equals(url))
            return;
        if (draweeView == null)
            return;
        initialize(draweeView.getContext());
        ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url))
                .setResizeOptions(new ResizeOptions(DimenUtils.dip2px(draweeView.getContext(),resizeWidthDp),DimenUtils.dip2px(draweeView.getContext(),resizeHeightDp)))
                .build();
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setimageRequest(request)
                .setoldController(draweeView.getController())
                .setControllerListener(new BaseControllerListener<ImageInfo>())
                .build();
        draweeView.setController(controller);
    } catch (Exception e) {
    }
}
项目:miku    文件:ImageUtils.java   
public static DraweeController showResgif(int resourceId,SimpleDraweeView simpleDraweeView) {
    ControllerListener controllerListener = new BaseControllerListener<ImageInfo>() {
        @Override
        public void onFinalimageset(
                String id,@Nullable Animatable anim) {
            if (anim != null) {
                anim.start();
            }
        }
    };

    Uri uri = Uri.parse("res://com.blinnnk.gaia/" + resourceId);
    DraweeController draweeController = Fresco.newDraweeControllerBuilder()
            .setUri(uri)
            .setControllerListener(controllerListener)
            .build();
    simpleDraweeView.setController(draweeController);
    return draweeController;
}
项目:Elephant    文件:PhotoShowActivity.java   
@Override
public void initLoad() {
    super.initLoad();

    if (!TextUtils.isEmpty(mImageUrl)) {
        PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder();
        controller.setUri(mImageUrl);
        controller.setoldController(mPhotoIv.getController());
        controller.setControllerListener(new BaseControllerListener<ImageInfo>() {
            @Override
            public void onFinalimageset(String id,Animatable animatable) {
                super.onFinalimageset(id,animatable);
                if (imageInfo == null || mPhotoIv == null) {
                    return;
                }
                mPhotoIv.update(imageInfo.getWidth(),imageInfo.getHeight());
            }
        });
        mPhotoIv.setController(controller.build());
    }
}
项目:android-jungle-framework    文件:FrescoImageLoaderEngine.java   
private DraweeController createDraweeController(
        DraweeView draweeView,Uri uri,ControllerListener<ImageInfo> listener) {

    JungleSize size = ImageLoaderUtils.getAppropriateSize(draweeView);
    ImageRequest request = ImageRequestBuilder
            .newBuilderWithSource(uri)
            .setResizeOptions(new ResizeOptions(size.mWidth,size.mHeight))
            .setAutoRotateEnabled(true)
            .build();

    return Fresco.newDraweeControllerBuilder()
            .setUri(uri)
            .setimageRequest(request)
            .setControllerListener(listener)
            .setAutoplayAnimations(true)
            .setoldController(draweeView.getController())
            .build();
}
项目:ImageLoaders    文件:MainActivity.java   
private void loadByFresco(String url) {
    Uri uri = Uri.parse(url);
    ControllerListener listener = new BaseControllerListener<ImageInfo>() {
        @Override
        public void onFinalimageset(String id,animatable);
            Log.d(TAG,"Fresco----->onFinalimageset: " + LogTime.getElapsedMillis(startTimeFresco) + "ms");
            textFresco.setText(getString(R.string.text_load_time,"Fresco",String.format("%.6f",LogTime.getElapsedMillis(startTimeFresco))));

        }
    };
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setControllerListener(listener)
            .setUri(uri)
            .build();
    imgFresco.setController(controller);
}
项目:AndroidImageSelect    文件:PhotoDraweeViewUtil.java   
public static void display(final PhotoDraweeView draweeView,Uri uri) {
    PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder();
    controller.setUri(uri);
    controller.setoldController(draweeView.getController());
    controller.setControllerListener(new BaseControllerListener<ImageInfo>() {
        @Override
        public void onFinalimageset(String id,animatable);
            if (imageInfo == null || draweeView == null) {
                return;
            }
            draweeView.update(imageInfo.getWidth(),imageInfo.getHeight());
        }
    });
    draweeView.setController(controller.build());
}
项目:SneezeReader    文件:ArticleAdapter.java   
/**
 * 更新图片的尺寸
 * @param imageView
 * @param imageInfo
 */
private void updateImageSize(SimpleDraweeView imageView,ImageInfo imageInfo){

    if(imageInfo != null){
        Log.d(TAG,"ImageInfo: width=" + imageInfo.getWidth() + ",height=" + imageInfo.getHeight());

        ViewGroup.LayoutParams lp = imageView.getLayoutParams();
        final int imageWidth = imageView.getMeasuredWidth();
        final int imageHeight = imageView.getMeasuredHeight();

        lp.width = imageWidth;
        lp.height = imageWidth * imageInfo.getHeight() / imageInfo.getWidth();

        imageView.setLayoutParams(lp);
        imageView.setAspectRatio((float)imageInfo.getWidth() / imageInfo.getHeight());
    }

}
项目:PHPhub-android    文件:galleryActivity.java   
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String imageUrl = getIntent().getStringExtra(IMAGE_URL);
    if (!TextUtils.isEmpty(imageUrl)) {
        PipelineDraweeControllerBuilder builder = Fresco.newDraweeControllerBuilder();
        builder.setUri(Uri.parse(imageUrl));
        builder.setoldController(photoView.getController());
        builder.setControllerListener(new BaseControllerListener<ImageInfo>() {
            @Override
            public void onFinalimageset(String id,animatable);
                if (imageInfo == null || photoView == null) {
                    return;
                }
                photoView.update(imageInfo.getWidth(),imageInfo.getHeight());
            }
        });
        photoView.setController(builder.build());
    }
}
项目:meiShi    文件:MediasAdapter.java   
@Override
public void onBindItemViewHolder(final ViewHolder holder,final int position) {
    MediaEntity entity = getItem(position);
    holder.mImageViewCover.setonClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            onItemClickListener.onItemClick(getItem(position));
        }
    });
    holder.mTextViewLikesCount.setTextimageStart(18,R.mipmap.ic_thumb_up_gray_18dp," " + entity.getLikes_count());
    holder.mTextViewRecommendCaption.setText(entity.getCaption());

    String url = entity.getCover_pic().replace("!thumb320","");
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setControllerListener(new BaseControllerListener<ImageInfo>() {
                @Override
                public void onFinalimageset(String id,Animatable animatable) {
                    float aspectRatio = (float)imageInfo.getWidth() / (float)imageInfo.getHeight();
                    holder.mImageViewCover.setAspectRatio(aspectRatio);
                }
            })
            .setUri(Uri.parse(url))
            .build();
    holder.mImageViewCover.setController(controller);
    AppUtils.loadSmallUserAvata(getItem(position).getUser(),holder.mImageViewAvatar);
}
项目:GitHub    文件:DraweeSpanStringBuilder.java   
@Override
public void onFinalimageset(
    String id,Animatable animatable) {
  if (mEnableResizing &&
      imageInfo != null &&
      mDraweeSpan.getDraweeHolder().getTopLevelDrawable() != null) {
    Drawable topLevelDrawable = mDraweeSpan.getDraweeHolder().getTopLevelDrawable();
    Rect topLevelDrawableBounds = topLevelDrawable.getBounds();
    if (mFixedHeight != UNSET_SIZE) {
      float imageWidth = ((float) mFixedHeight / imageInfo.getHeight()) * imageInfo.getWidth();
      int imageWidthPx = (int) imageWidth;
      if (topLevelDrawableBounds.width() != imageWidthPx ||
          topLevelDrawableBounds.height() != mFixedHeight) {
        topLevelDrawable.setBounds(0,imageWidthPx,mFixedHeight);

        if (mDraweeSpanChangedListener != null) {
          mDraweeSpanChangedListener.onDraweeSpanChanged(DraweeSpanStringBuilder.this);
        }
      }
    } else if (topLevelDrawableBounds.width() != imageInfo.getWidth() ||
        topLevelDrawableBounds.height() != imageInfo.getHeight()) {
      topLevelDrawable.setBounds(0,imageInfo.getWidth(),imageInfo.getHeight());

      if (mDraweeSpanChangedListener != null) {
        mDraweeSpanChangedListener.onDraweeSpanChanged(DraweeSpanStringBuilder.this);
      }
    }
  }
}
项目:TakeRest    文件:PhotoViewActivity.java   
@Override
protected void init() {
    super.init();
    transparentStatusBar();
    ButterKnife.bind(this);
    url = getIntent().getStringExtra("url");
    PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder();
    controller.setUri(Uri.parse(url));
    controller.setAutoplayAnimations(true);
    controller.setoldController(photoDraweeView.getController());
    controller.setControllerListener(new BaseControllerListener<ImageInfo>() {
        @Override
        public void onFinalimageset(String id,animatable);
            if (imageInfo == null || photoDraweeView == null) {
                return;
            }
            photoDraweeView.update(imageInfo.getWidth(),imageInfo.getHeight());
            normalScale = photoDraweeView.getScale();
        }
    });
    photoDraweeView.setController(controller.build());
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
        String name = getIntent().getStringExtra("transition_name");
        photoDraweeView.setTransitionName(name);
        getwindow().setSharedElementEnterTransition(DraweeTransition.createTransitionSet(
                ScalingUtils.ScaleType.CENTER_CROP,ScalingUtils.ScaleType.FIT_CENTER));
        getwindow().setSharedElementReturnTransition(DraweeTransition.createTransitionSet(
                ScalingUtils.ScaleType.FIT_CENTER,ScalingUtils.ScaleType.CENTER_CROP));
    }
}
项目:cardinalsSample    文件:FrescoManager.java   
/**
 * 改变图片的尺寸
 *
 * @param imageInfo 获取的图片信息
 * @param maxWidth  可显示的最大宽度
 * @param view      图片对象
 */
private static void changeImageSize(ImageInfo imageInfo,int maxWidth,SimpleDraweeView view) {
    int height = imageInfo.getHeight();
    int width = imageInfo.getWidth();
    float scaleWidth = (float) maxWidth / width;
    int realHeight = (int) (height * scaleWidth);
    int realWidth = (int) (width * scaleWidth);
    ViewGroup.LayoutParams params = view.getLayoutParams();
    params.height = realHeight;
    params.width = realWidth;
    view.setLayoutParams(params);
}
项目:react-native-android-bottom-navigation    文件:RNBottomNavigation.java   
@Override
public void onFinalimageset(String id,@Nullable Animatable animatable) {
    super.onFinalimageset(id,animatable);

    final ImageInfo info = mIconImageInfo != null ? mIconImageInfo : imageInfo;
    setDrawable(new DrawableWithIntrinsicSize(mHolder.getTopLevelDrawable(),info));
}
项目:react-native-udesk    文件:UdeskUtil.java   
public static void loadFileFromSdcard(final Context context,final SimpleDraweeView draweeView,Uri loackUri,final int reqWidth,final int reqHeight) {
    ImageRequest request = ImageRequestBuilder.newBuilderWithSource(loackUri)
            .setRotationoptions(Rotationoptions.autoRotate())
            .setLocalThumbnailPreviewsEnabled(true)
            .setResizeOptions(new ResizeOptions(dip2px(context,140),dip2px(context,220)))
            .build();
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setimageRequest(request)
            .setoldController(draweeView.getController())
            .setTapToRetryEnabled(true)
            .setControllerListener(new BaseControllerListener<ImageInfo>() {
                @Override
                public void onFinalimageset(String id,Animatable anim) {
                    if (imageInfo == null) {
                        return;
                    }

                    ViewGroup.LayoutParams layoutParams = draweeView.getLayoutParams();
                    int width = reqWidth;
                    int height = reqHeight;
                    int imgWidth = dip2px(context,140);
                    int imgHight = dip2px(context,220);
                    int bitScalew = getRatioSize(width,height,imgHight,imgWidth);
                    layoutParams.height = height / bitScalew;
                    layoutParams.width = width / bitScalew;
                    draweeView.requestLayout();
                }
            })
            .setAutoplayAnimations(true)
            .build();
    draweeView.setController(controller);
}
项目:RNLearn_Project1    文件:ReactToolbar.java   
@Override
public void onFinalimageset(String id,@Nullable Animatable animatable) {
  super.onFinalimageset(id,animatable);

  final ImageInfo info = mIconImageInfo != null ? mIconImageInfo : imageInfo;
  setDrawable(new DrawableWithIntrinsicSize(mHolder.getTopLevelDrawable(),info));
}
项目:RNLearn_Project1    文件:ReactimageView.java   
public void setShouldNotifyLoadEvents(boolean shouldNotify) {
  if (!shouldNotify) {
    mControllerListener = null;
  } else {
    final Eventdispatcher mEventdispatcher = ((ReactContext) getContext()).
        getNativeModule(UIManagerModule.class).getEventdispatcher();

    mControllerListener = new BaseControllerListener<ImageInfo>() {
      @Override
      public void onSubmit(String id,Object callerContext) {
        mEventdispatcher.dispatchEvent(
            new ImageLoadEvent(getId(),ImageLoadEvent.ON_LOAD_START));
      }

      @Override
      public void onFinalimageset(
          String id,@Nullable final ImageInfo imageInfo,@Nullable Animatable animatable) {
        if (imageInfo != null) {
          mEventdispatcher.dispatchEvent(
            new ImageLoadEvent(getId(),ImageLoadEvent.ON_LOAD,mImageSource.getSource(),imageInfo.getHeight()));
          mEventdispatcher.dispatchEvent(
            new ImageLoadEvent(getId(),ImageLoadEvent.ON_LOAD_END));
        }
      }

      @Override
      public void onFailure(String id,Throwable throwable) {
        mEventdispatcher.dispatchEvent(
          new ImageLoadEvent(getId(),ImageLoadEvent.ON_ERROR));
        mEventdispatcher.dispatchEvent(
          new ImageLoadEvent(getId(),ImageLoadEvent.ON_LOAD_END));
      }
    };
  }

  mIsDirty = true;
}
项目:ReactNativeSignatureExample    文件:ReactToolbar.java   
@Override
public void onFinalimageset(String id,info));
}
项目:native-navigation    文件:ReactToolbar.java   
@Override
public void onFinalimageset(String id,Animatable animatable) {
  super.onFinalimageset(id,info));
}
项目:native-navigation    文件:ReactBottomNavigation.java   
@Override
public void onFinalimageset(String id,info));
}
项目:android-photo-picker    文件:CommonDraweeView.java   
/***
 * load net work image.
 * @param url the main url of image,from net
 * @param lowUrl the low url,from net or local image file name,can be null.
 * @param placeHolder the place holder. 0 with no place holder
 * @param errorResId error res id,0 with no error res.
 * @param width the width you want
 * @param height the height you want
 * @param scaleType scale type
 * @param l BaseControllerListener,can be null
 */
public void loadImage(String url,String lowUrl,int placeHolder,ScalingUtils.ScaleType scaleType,int width,int height,final BaseControllerListener<ImageInfo> l){
    ImageRequest request = ImageRequestBuilder
            .newBuilderWithSource(Uri.parse(url))
            //.setLowestPermittedRequestLevel(ImageRequest.RequestLevel.FULL_FETCH)
            .setResizeOptions(new ResizeOptions(width,height))
            .build();
    getHierarchy().setActualImageScaleType(scaleType);
    if(placeHolder!=0) {
        getHierarchy().setPlaceholderImage(getResources().getDrawable( placeHolder ),scaleType);
    }
    if(errorResId!=0){
        getHierarchy().setFailureImage(getResources().getDrawable( errorResId ),scaleType);
    }
    PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder()
            .setControllerListener(l)
            .setimageRequest(request)
            .setoldController(getController());
    if(lowUrl!=null){
        Uri lowUri = lowUrl.startsWith("http") ? Uri.parse(lowUrl) : Uri.fromFile(new File(lowUrl));
        controller.setLowResImageRequest(ImageRequestBuilder.newBuilderWithSource(lowUri)
                .setResizeOptions(new ResizeOptions(width,height))
                .build() );
    }
    setController(controller.build());
}
项目:JianshuApp    文件:UniversalDraweeView.java   
private void loadImageURI(Uri uri,@Nullable Object callerContext,int height) {
    // 对URL做格式转换、尺寸限制等处理
    uri = Uri.parse(ImageUtils.format(uri.toString(),displayInfo.getWidthPixels()));

    ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(uri);
    imageRequestBuilder.setProgressiveRenderingEnabled(true);

    imageRequestBuilder.setRotationoptions(Rotationoptions.autoRotateAtRenderTime());
    if (width > 0 && height > 0) {
        imageRequestBuilder.setResizeOptions(new ResizeOptions(width,height));
    }

    PipelineDraweeControllerBuilder controller = Fresco.newDraweeControllerBuilder()
            .setCallerContext(callerContext)
            .setimageRequest(imageRequestBuilder.build())
            .setoldController(getController())
            .setAutoplayAnimations(true)  // 自动播放动态图
            .setTapToRetryEnabled(true)  // 在加载失败时,可以点击重新加载
            .setControllerListener(new BaseControllerListener<ImageInfo>() {
                @Override
                public void onFinalimageset(String id,Animatable animatable) {
                    super.onFinalimageset(id,animatable);
                    onUpdateImage(imageInfo);
                }
            });
    if (AppUtils.isMainThread()) {
        setController(controller.build());
    } else {
        Observable.just(0)
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(it -> setController(controller.build()));
    }
}
项目:galleryFinal-master    文件:FrescoImageLoader.java   
/**
 * 加载远程图片
 *
 * @param url
 * @param imageSize
 */
private void displayImage(Uri url,ResizeOptions imageSize,final ImageView imageView,final DraweeHolder<GenericDraweeHierarchy> draweeHolder) {
    ImageRequest imageRequest = ImageRequestBuilder
            .newBuilderWithSource(url)
            .setResizeOptions(imageSize)//图片目标大小
            .build();
    ImagePipeline imagePipeline = Fresco.getimagePipeline();

    final DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest,this);
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setoldController(draweeHolder.getController())
            .setimageRequest(imageRequest)
            .setControllerListener(new BaseControllerListener<ImageInfo>() {
                @Override
                public void onFinalimageset(String s,Animatable animatable) {
                    CloseableReference<CloseableImage> imageReference = null;
                    try {
                        imageReference = dataSource.getResult();
                        if (imageReference != null) {
                            CloseableImage image = imageReference.get();
                            if (image != null && image instanceof CloseableStaticBitmap) {
                                CloseableStaticBitmap closeableStaticBitmap = (CloseableStaticBitmap) image;
                                Bitmap bitmap = closeableStaticBitmap.getUnderlyingBitmap();
                                if (bitmap != null && imageView != null) {
                                    imageView.setimageBitmap(bitmap);
                                }
                            }
                        }
                    } finally {
                        dataSource.close();
                        CloseableReference.closeSafely(imageReference);
                    }
                }
            })
            .setTapToRetryEnabled(true)
            .build();
    draweeHolder.setController(controller);
}
项目:react-native-ibeacon-android    文件:ReactToolbar.java   
@Override
public void onFinalimageset(String id,info));
}
项目:react-native-amap    文件:AMapMarker.java   
@Override
public void onFinalimageset(
        String id,@Nullable Animatable animatable) {
    CloseableReference<CloseableImage> imageReference = null;
    try {
        imageReference = dataSource.getResult();
        if (imageReference != null) {
            CloseableImage image = imageReference.get();
            if (image != null && image instanceof CloseableStaticBitmap) {
                CloseableStaticBitmap closeableStaticBitmap = (CloseableStaticBitmap) image;
                Bitmap bitmap = closeableStaticBitmap.getUnderlyingBitmap();
                if (bitmap != null) {
                    bitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true);
                    iconBitmap = bitmap;
                    iconBitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap);
                }
            }
        }
    } finally {
        dataSource.close();
        if (imageReference != null) {
            CloseableReference.closeSafely(imageReference);
        }
    }
    update();
}
项目:NApply    文件:FrescoAdapter.java   
void updateViewSize(@NonNull SimpleDraweeView draweeView,@Nullable ImageInfo imageInfo) {
        if (imageInfo != null) {
//            draweeView.getLayoutParams().width = imageInfo.getWidth();
            draweeView.getLayoutParams().width = ContextUtils.getMetrics(mContext).widthPixels/2;
            draweeView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
            draweeView.setAspectRatio((float) imageInfo.getWidth() / imageInfo.getHeight());
        }
    }
项目:NApply    文件:FrescoImageLoader.java   
public void setController(@NonNull SimpleDraweeView draweeView,@Nullable String uri,@Nullable ControllerListener<ImageInfo> controllerListener){
    DraweeController draweeController =  initControllerBuilder()
            .setoldController(draweeView.getController())
            .setUri(uri)
            .setControllerListener(controllerListener)
            .build();
    draweeView.setController(draweeController);
}
项目:NApply    文件:FrescoImageLoader.java   
public void setimageRequest(@NonNull SimpleDraweeView draweeView,@Nullable ImageRequest imageRequest,@Nullable ControllerListener<ImageInfo> controllerListener){
    DraweeController draweeController =  initControllerBuilder()
            .setoldController(draweeView.getController())
            .setimageRequest(imageRequest)
            .setControllerListener(controllerListener)
            .build();
    draweeView.setController(draweeController);
}
项目:NApply    文件:FrescoImageLoader.java   
private static void updateViewSize(@NonNull SimpleDraweeView draweeView,int width) {
    if (imageInfo != null) {
        draweeView.getLayoutParams().width = width;
        draweeView.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
        draweeView.setAspectRatio((float) imageInfo.getWidth() / imageInfo.getHeight());
    }
}
项目:Li-MVPArms    文件:PhotoView.java   
public void setimageUri(String url) {
    ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(url)).build();
    ImagePipeline imagePipeline = Fresco.getimagePipeline();
    final DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest,this);
    DraweeController controller = Fresco.newDraweeControllerBuilder()
            .setoldController(mDraweeHolder.getController())
            .setimageRequest(imageRequest)
            .setControllerListener(new BaseControllerListener<ImageInfo>() {
                @Override
                public void onFinalimageset(String s,@Nullable Animatable animatable) {
                    try {
                        imageReference = dataSource.getResult();
                        if (imageReference != null) {
                            CloseableImage image = imageReference.get();
                            // do something with the image
                            if (image != null && image instanceof CloseableStaticBitmap) {
                                CloseableStaticBitmap closeableStaticBitmap = (CloseableStaticBitmap) image;
                                Bitmap bitmap = closeableStaticBitmap.getUnderlyingBitmap();
                                if (bitmap != null) {
                                    setimageBitmap(bitmap);
                                }
                            }
                        }
                    } finally {
                        dataSource.close();
                        CloseableReference.closeSafely(imageReference);
                    }
                }
            })
            .setTapToRetryEnabled(true)
            .build();
    mDraweeHolder.setController(controller);
}
项目:Li-MVPArms    文件:PhotoView.java   
public void setimageUri(String uri,int height) {
    ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(Uri.parse(uri))
            .setAutoRotateEnabled(true)
            .setResizeOptions(new ResizeOptions(width,height))
            .build();
    ImagePipeline imagePipeline = Fresco.getimagePipeline();
    final DataSource<CloseableReference<CloseableImage>> dataSource = imagePipeline.fetchDecodedImage(imageRequest,@Nullable Animatable animatable) {
                    try {
                        imageReference = dataSource.getResult();
                        if (imageReference != null) {
                            CloseableImage image = imageReference.get();
                            if (image != null && image instanceof CloseableStaticBitmap) {
                                CloseableStaticBitmap closeableStaticBitmap = (CloseableStaticBitmap) image;
                                Bitmap bitmap = closeableStaticBitmap.getUnderlyingBitmap();
                                if (bitmap != null) {
                                    setimageBitmap(bitmap);
                                }
                            }
                        }
                    } finally {
                        dataSource.close();
                        CloseableReference.closeSafely(imageReference);
                    }
                }
            })
            .setTapToRetryEnabled(true)
            .build();
    mDraweeHolder.setController(controller);
}
项目:FrescoCustomCacheKey    文件:FrescoImageLoader.java   
/**
 * 获取DraweeController
 *
 * @param imageRequest 设置单个图片请求~~~不可与setFirstAvailableImageRequests共用,配合setLowResImageRequest为高分辨率的图
 * @param lowResImageRequest 先下载显示低分辨率的图
 * @param firstAvailableImageRequests 本地图片复用,可加入ImageRequest数组
 * @param controllerListener 监听图片下载完毕等
 * @param tapToRetryEnabled 点击重新加载图
 */
public static PipelineDraweeControllerBuilder getDraweeController(SimpleDraweeView view,ImageRequest lowResImageRequest,@Nullable ImageRequest[] firstAvailableImageRequests,@Nullable ControllerListener<ImageInfo> controllerListener,boolean tapToRetryEnabled) {
    PipelineDraweeControllerBuilder builder = Fresco
            .newDraweeControllerBuilder();
    //自动播放图片动画
    builder.setAutoplayAnimations(true);
    //点击重新加载图
    builder.setTapToRetryEnabled(tapToRetryEnabled);
    if (firstAvailableImageRequests != null &&
            firstAvailableImageRequests.length > 0) {
        //本地图片复用,可加入ImageRequest数组
        builder.setFirstAvailableImageRequests(firstAvailableImageRequests);
    } else if (imageRequest != null) {
        //设置单个图片请求~~~不可与setFirstAvailableImageRequests共用,配合setLowResImageRequest为高分辨率的图
        builder.setimageRequest(imageRequest);
        if (lowResImageRequest != null) {
            //先下载显示低分辨率的图
            builder.setLowResImageRequest(lowResImageRequest);
        }
    }
    if (controllerListener != null) {
        //监听图片下载完毕等
        builder.setControllerListener(controllerListener);
    }
    //DraweeController复用
    builder.setoldController(view.getController());
    return builder;
}
项目:react-native-Box-loaders    文件:ReactToolbar.java   
@Override
public void onFinalimageset(String id,info));
}
项目:Frescoplus    文件:FetchImageControllerListenersupplier.java   
@Override
public void onFinalimageset(String id,Animatable animatable) {
    super.onFinalimageset(id,animatable);
    if(FPFetchCallback ==null || imageInfo == null)
        return;
    FrescoLogger.getLogger().log("Bitmap:[height="+imageInfo.getHeight()+",width="+imageInfo.getWidth()+"]");
    FPFetchCallback.onSuccess(imageInfo);
}

com.facebook.animated.webp.WebPImage的实例源码

com.facebook.animated.webp.WebPImage的实例源码

项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Before
public void setup() {
  powermockito.mockStatic(WebPImage.class);
  mWebPImageMock = mock(WebPImage.class);

  mMockAnimatedDrawableBackendProvider = mock(AnimatedDrawableBackendProvider.class);
  mMockBitmapFactory = mock(PlatformBitmapFactory.class);

  mAnimatedImageFactory = new AnimatedImageFactoryImpl(
      mMockAnimatedDrawableBackendProvider,mMockBitmapFactory);

  ((AnimatedImageFactoryImpl) mAnimatedImageFactory).sWebpAnimatedimagedecoder = mWebPImageMock;

}
项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateDefaults() {
  WebPImage mockWebPImage = mock(WebPImage.class);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mWebPImageMock.decode(byteBuffer.getNativePtr(),byteBuffer.size()))
      .thenReturn(mockWebPImage);

  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,FAKE_RESOURCE_RELEASER));
  encodedImage.setimageFormat(ImageFormat.UNKNowN);

  CloseableAnimatedImage closeableImage =
      (CloseableAnimatedImage) mAnimatedImageFactory.decodeWebP(
          encodedImage,ImageDecodeOptions.defaults(),DEFAULT_BITMAP_CONfig);

  // Verify we got the right result
  AnimatedImageResult imageResult = closeableImage.getimageResult();
  assertSame(mockWebPImage,imageResult.getimage());
  assertNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verifyZeroInteractions(mMockAnimatedDrawableBackendProvider);
  verifyZeroInteractions(mMockBitmapFactory);
}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Before
public void setup() {
  powermockito.mockStatic(WebPImage.class);
  mWebPImageMock = mock(WebPImage.class);

  mMockAnimatedDrawableBackendProvider = mock(AnimatedDrawableBackendProvider.class);
  mMockBitmapFactory = mock(PlatformBitmapFactory.class);

  mAnimatedImageFactory = new AnimatedImageFactoryImpl(
      mMockAnimatedDrawableBackendProvider,mMockBitmapFactory);

  ((AnimatedImageFactoryImpl) mAnimatedImageFactory).sWebpAnimatedimagedecoder = mWebPImageMock;

}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateDefaults() {
  WebPImage mockWebPImage = mock(WebPImage.class);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mWebPImageMock.decode(byteBuffer.getNativePtr(),imageResult.getimage());
  assertNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verifyZeroInteractions(mMockAnimatedDrawableBackendProvider);
  verifyZeroInteractions(mMockBitmapFactory);
}
项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithPreviewBitmap() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap = MockBitmapFactory.create(50,50,DEFAULT_BITMAP_CONfig);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mWebPImageMock.decode(byteBuffer.getNativePtr(),byteBuffer.size()))
      .thenReturn(mockWebPImage);
  when(mockWebPImage.getWidth()).thenReturn(50);
  when(mockWebPImage.getHeight()).thenReturn(50);

  // For decoding preview frame,expect some calls.
  final AnimatedDrawableBackend mockAnimatedDrawableBackend =
      createAnimatedDrawableBackendMock(1);

  when(mMockAnimatedDrawableBackendProvider.get(
          any(AnimatedImageResult.class),isNull(Rect.class)))
      .thenReturn(mockAnimatedDrawableBackend);
  when(mMockBitmapFactory.createBitmapInternal(50,DEFAULT_BITMAP_CONfig))
      .thenReturn(CloseableReference.of(mockBitmap,FAKE_BITMAP_RESOURCE_RELEASER));
  AnimatedImageCompositor mockCompositor = mock(AnimatedImageCompositor.class);
  powermockito.whenNew(AnimatedImageCompositor.class)
      .withAnyArguments()
      .thenReturn(mockCompositor);

  ImageDecodeOptions imageDecodeOptions = ImageDecodeOptions.newBuilder()
      .setDecodePreviewFrame(true)
      .build();
  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,FAKE_RESOURCE_RELEASER));
  encodedImage.setimageFormat(ImageFormat.UNKNowN);
  CloseableAnimatedImage closeableImage =
      (CloseableAnimatedImage) mAnimatedImageFactory.decodeWebP(
          encodedImage,imageDecodeOptions,imageResult.getimage());
  assertNotNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verify(mMockAnimatedDrawableBackendProvider).get(
      any(AnimatedImageResult.class),isNull(Rect.class));
  verifyNoMoreInteractions(mMockAnimatedDrawableBackendProvider);
  verify(mMockBitmapFactory).createBitmapInternal(50,DEFAULT_BITMAP_CONfig);
  verifyNoMoreInteractions(mMockBitmapFactory);
  verify(mockCompositor).renderFrame(0,mockBitmap);
}
项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithDecodeAlFrames() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap1 = MockBitmapFactory.create(50,DEFAULT_BITMAP_CONfig);
  Bitmap mockBitmap2 = MockBitmapFactory.create(50,expect some calls.
  final AnimatedDrawableBackend mockAnimatedDrawableBackend =
      createAnimatedDrawableBackendMock(2);
  when(
      mMockAnimatedDrawableBackendProvider.get(
          any(AnimatedImageResult.class),isNull(Rect.class)))
      .thenReturn(mockAnimatedDrawableBackend);

  when(mMockBitmapFactory.createBitmapInternal(50,DEFAULT_BITMAP_CONfig))
      .thenReturn(CloseableReference.of(mockBitmap1,FAKE_BITMAP_RESOURCE_RELEASER))
      .thenReturn(CloseableReference.of(mockBitmap2,FAKE_BITMAP_RESOURCE_RELEASER));
  AnimatedImageCompositor mockCompositor = mock(AnimatedImageCompositor.class);
  powermockito.whenNew(AnimatedImageCompositor.class)
      .withAnyArguments()
      .thenReturn(mockCompositor);

  ImageDecodeOptions imageDecodeOptions = ImageDecodeOptions.newBuilder()
      .setDecodePreviewFrame(true)
      .setDecodeAllFrames(true)
      .build();

  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,imageResult.getimage());
  assertNotNull(imageResult.getDecodedFrame(0));
  assertNotNull(imageResult.getDecodedFrame(1));
  assertNotNull(imageResult.getPreviewBitmap());

  // Should not have interacted with these.
  verify(mMockAnimatedDrawableBackendProvider).get(
      any(AnimatedImageResult.class),isNull(Rect.class));
  verifyNoMoreInteractions(mMockAnimatedDrawableBackendProvider);
  verify(mMockBitmapFactory,times(2)).createBitmapInternal(50,mockBitmap1);
  verify(mockCompositor).renderFrame(1,mockBitmap2);
}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithPreviewBitmap() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap = MockBitmapFactory.create(50,mockBitmap);
}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithDecodeAlFrames() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap1 = MockBitmapFactory.create(50,mockBitmap2);
}

com.facebook.imagepipeline.animated.base.AnimatedDrawable的实例源码

com.facebook.imagepipeline.animated.base.AnimatedDrawable的实例源码

项目:GitHub    文件:BoxingFrescoLoader.java   
private Drawable createDrawableFromFetchedResult(Context context,CloseableImage image) {
    if (image instanceof CloseableStaticBitmap) {
        CloseableStaticBitmap closeableStaticBitmap = (CloseableStaticBitmap) image;
        BitmapDrawable bitmapDrawable = createBitmapDrawable(context,closeableStaticBitmap.getUnderlyingBitmap());
        return (closeableStaticBitmap.getRotationAngle() != 0 && closeableStaticBitmap.getRotationAngle() != -1 ? new OrientedDrawable(bitmapDrawable,closeableStaticBitmap.getRotationAngle()) : bitmapDrawable);
    } else if (image instanceof CloseableAnimatedImage) {
        AnimatedDrawableFactory animatedDrawableFactory = Fresco.getimagePipelineFactory().getAnimatedFactory().getAnimatedDrawableFactory(context);
        if (animatedDrawableFactory != null) {
            AnimatedDrawable animatedDrawable = (AnimatedDrawable) animatedDrawableFactory.create(image);
            if (animatedDrawable != null) {
                return animatedDrawable;
            }
        }
    }
    throw new UnsupportedOperationException("Unrecognized image class: " + image);
}
项目:Boxing    文件:BoxingFrescoLoader.java   
private Drawable createDrawableFromFetchedResult(Context context,closeableStaticBitmap.getRotationAngle()) : bitmapDrawable);
    } else if (image instanceof CloseableAnimatedImage) {
        AnimatedDrawableFactory animatedDrawableFactory = Fresco.getimagePipelineFactory().getAnimatedFactory().getAnimatedDrawableFactory(context);
        if (animatedDrawableFactory != null) {
            AnimatedDrawable animatedDrawable = (AnimatedDrawable) animatedDrawableFactory.create(image);
            if (animatedDrawable != null) {
                return animatedDrawable;
            }
        }
    }
    throw new UnsupportedOperationException("Unrecognized image class: " + image);
}
项目:CanPhotos    文件:CanViewPagerActivity.java   
private void handleAnimateBitmap(CloseableAnimatedImage animatedImage,int position) {

        AnimatedDrawableFactory animatedDrawableFactory =
                Fresco.getimagePipelineFactory().getAnimatedDrawableFactory();
        AnimatedDrawable drawable =
                animatedDrawableFactory.create(animatedImage.getimageResult());

        Bitmap bitmap = drawable2Bitmap(drawable);
        map.put(position,bitmap);


    }

com.facebook.imagepipeline.animated.base.AnimatedImageFrame的实例源码

com.facebook.imagepipeline.animated.base.AnimatedImageFrame的实例源码

项目:GitHub    文件:AnimatedDrawableBackendImpl.java   
private void renderImageSupportsScaling(Canvas canvas,AnimatedImageFrame frame) {
  double xScale = (double) mRenderedBounds.width() / (double) mAnimatedImage.getWidth();
  double yScale = (double) mRenderedBounds.height() / (double) mAnimatedImage.getHeight();

  int frameWidth = (int) Math.round(frame.getWidth() * xScale);
  int frameHeight = (int) Math.round(frame.getHeight() * yScale);
  int xOffset = (int) (frame.getXOffset() * xScale);
  int yOffset = (int) (frame.getYOffset() * yScale);

  synchronized (this) {
    prepareTempBitmapForThisSize(mRenderedBounds.width(),mRenderedBounds.height());
    frame.renderFrame(frameWidth,frameHeight,mTempBitmap);

    // Temporary bitmap can be bigger than frame,so we should draw only rendered area of bitmap
    mRenderSrcRect.set(0,mRenderedBounds.width(),mRenderedBounds.height());
    mRenderDstRect.set(xOffset,yOffset,mRenderedBounds.height());

    canvas.drawBitmap(mTempBitmap,mRenderSrcRect,mRenderDstRect,null);
  }
}
项目:GitHub    文件:AnimatedDrawableBackendImpl.java   
private void renderImageDoesNotSupportScaling(Canvas canvas,AnimatedImageFrame frame) {
  int frameWidth = frame.getWidth();
  int frameHeight = frame.getHeight();
  int xOffset = frame.getXOffset();
  int yOffset = frame.getYOffset();
  synchronized (this) {
    prepareTempBitmapForThisSize(frameWidth,frameHeight);
    frame.renderFrame(frameWidth,frameWidth,frameHeight);
    mRenderDstRect.set(0,frameHeight);

    float xScale = (float) mRenderedBounds.width() / (float) mAnimatedImage.getWidth();
    float yScale = (float) mRenderedBounds.height() / (float) mAnimatedImage.getHeight();
    canvas.save();
    canvas.scale(xScale,yScale);
    canvas.translate(xOffset,yOffset);
    canvas.drawBitmap(mTempBitmap,null);
    canvas.restore();
  }
}
项目:fresco    文件:AnimatedDrawableBackendImpl.java   
private void renderImageSupportsScaling(Canvas canvas,AnimatedImageFrame frame) {
  double xScale = (double) mRenderedBounds.width() / (double) mAnimatedImage.getWidth();
  double yScale = (double) mRenderedBounds.height() / (double) mAnimatedImage.getHeight();

  int frameWidth = (int) Math.round(frame.getWidth() * xScale);
  int frameHeight = (int) Math.round(frame.getHeight() * yScale);
  int xOffset = (int) (frame.getXOffset() * xScale);
  int yOffset = (int) (frame.getYOffset() * yScale);

  synchronized (this) {
    int renderedWidth = mRenderedBounds.width();
    int renderedHeight = mRenderedBounds.height();
    // Update the temp bitmap to be >= rendered dimensions
    prepareTempBitmapForThisSize(renderedWidth,renderedHeight);
    frame.renderFrame(frameWidth,mTempBitmap);
    // Temporary bitmap can be bigger than frame,renderedWidth,renderedHeight);
    mRenderDstRect.set(xOffset,xOffset + renderedWidth,yOffset + renderedHeight);

    canvas.drawBitmap(mTempBitmap,null);
  }
}
项目:fresco    文件:AnimatedDrawableBackendImpl.java   
private void renderImageDoesNotSupportScaling(Canvas canvas,null);
    canvas.restore();
  }
}
项目:GitHub    文件:AnimatedDrawableBackendImpl.java   
@Override
public void renderFrame(int frameNumber,Canvas canvas) {
  AnimatedImageFrame frame  = mAnimatedImage.getFrame(frameNumber);
  try {
    if (mAnimatedImage.doesRenderSupportScaling()) {
      renderImageSupportsScaling(canvas,frame);
    } else {
      renderImageDoesNotSupportScaling(canvas,frame);
    }
  } finally {
    frame.dispose();
  }
}
项目:fresco    文件:AnimatedDrawableBackendImpl.java   
@Override
public void renderFrame(int frameNumber,frame);
    }
  } finally {
    frame.dispose();
  }
}

com.facebook.imagepipeline.animated.base.AnimatedImageResult的实例源码

com.facebook.imagepipeline.animated.base.AnimatedImageResult的实例源码

项目:GitHub    文件:AnimatedDrawableBackendImpl.java   
public AnimatedDrawableBackendImpl(
    AnimatedDrawableutil animatedDrawableutil,AnimatedImageResult animatedImageResult,Rect bounds) {
  mAnimatedDrawableutil = animatedDrawableutil;
  mAnimatedImageResult = animatedImageResult;
  mAnimatedImage = animatedImageResult.getimage();
  mFrameDurationsMs = mAnimatedImage.getFrameDurations();
  mAnimatedDrawableutil.fixFrameDurations(mFrameDurationsMs);
  mDurationMs = mAnimatedDrawableutil.getTotalDurationFromFrameDurations(mFrameDurationsMs);
  mFrameTimestampsMs = mAnimatedDrawableutil.getFrameTimeStampsFromDurations(mFrameDurationsMs);
  mRenderedBounds = getBoundsToUse(mAnimatedImage,bounds);
  mFrameInfos = new AnimatedDrawableFrameInfo[mAnimatedImage.getFrameCount()];
  for (int i = 0; i < mAnimatedImage.getFrameCount(); i++) {
    mFrameInfos[i] = mAnimatedImage.getFrameInfo(i);
  }
}
项目:fresco    文件:AnimatedDrawableBackendImpl.java   
public AnimatedDrawableBackendImpl(
    AnimatedDrawableutil animatedDrawableutil,bounds);
  mFrameInfos = new AnimatedDrawableFrameInfo[mAnimatedImage.getFrameCount()];
  for (int i = 0; i < mAnimatedImage.getFrameCount(); i++) {
    mFrameInfos[i] = mAnimatedImage.getFrameInfo(i);
  }
}
项目:GitHub    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private AnimationBackend createAnimationBackend(AnimatedImageResult animatedImageResult) {
  AnimatedDrawableBackend animatedDrawableBackend =
      createAnimatedDrawableBackend(animatedImageResult);

  BitmapFrameCache bitmapFrameCache = createBitmapFrameCache(animatedImageResult);
  BitmapFrameRenderer bitmapFrameRenderer =
      new AnimatedDrawableBackendFrameRenderer(bitmapFrameCache,animatedDrawableBackend);

  int numberOfFramesToPrefetch = mNumberOfFramesToPreparesupplier.get();
  BitmapFramePreparationStrategy bitmapFramePreparationStrategy = null;
  BitmapFramePreparer bitmapFramePreparer = null;
  if (numberOfFramesToPrefetch > 0) {
    bitmapFramePreparationStrategy = new FixednumberBitmapFramePreparationStrategy();
    bitmapFramePreparer = createBitmapFramePreparer(bitmapFrameRenderer);
  }

  BitmapAnimationBackend bitmapAnimationBackend = new BitmapAnimationBackend(
      mPlatformBitmapFactory,bitmapFrameCache,new AnimatedDrawableBackendAnimationinformation(animatedDrawableBackend),bitmapFrameRenderer,bitmapFramePreparationStrategy,bitmapFramePreparer);

  return AnimationBackendDelegateWithInactivityCheck.createForBackend(
      bitmapAnimationBackend,mMonotonicclock,mscheduledexecutorserviceForUiThread);
}
项目:GitHub    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private BitmapFrameCache createBitmapFrameCache(AnimatedImageResult animatedImageResult) {
  switch (mCachingStrategysupplier.get()) {
    case CACHING_STRATEGY_FRESCO_CACHE:
      return new FrescoFrameCache(createAnimatedFrameCache(animatedImageResult),true);
    case CACHING_STRATEGY_FRESCO_CACHE_NO_REUSING:
      return new FrescoFrameCache(createAnimatedFrameCache(animatedImageResult),false);
    case CACHING_STRATEGY_KEEP_LAST_CACHE:
      return new KeepLastFrameCache();
    case CACHING_STRATEGY_NO_CACHE:
    default:
      return new NoOpCache();
  }
}
项目:GitHub    文件:AnimatedFactoryV2Impl.java   
private AnimatedDrawableBackendProvider getAnimatedDrawableBackendProvider() {
  if (mAnimatedDrawableBackendProvider == null) {
    mAnimatedDrawableBackendProvider = new AnimatedDrawableBackendProvider() {
      @Override
      public AnimatedDrawableBackend get(AnimatedImageResult animatedImageResult,Rect bounds) {
        return new AnimatedDrawableBackendImpl(
            getAnimatedDrawableutil(),animatedImageResult,bounds);
      }
    };
  }
  return mAnimatedDrawableBackendProvider;
}
项目:GitHub    文件:AnimatedFactoryV2Impl.java   
private AnimatedImageFactory buildAnimatedImageFactory() {
  AnimatedDrawableBackendProvider animatedDrawableBackendProvider =
      new AnimatedDrawableBackendProvider() {
        @Override
        public AnimatedDrawableBackend get(AnimatedImageResult imageResult,Rect bounds) {
          return new AnimatedDrawableBackendImpl(getAnimatedDrawableutil(),imageResult,bounds);
        }
      };
  return new AnimatedImageFactoryImpl(animatedDrawableBackendProvider,mPlatformBitmapFactory);
}
项目:GitHub    文件:CloseableAnimatedImage.java   
@Override
public void close() {
  AnimatedImageResult imageResult;
  synchronized (this) {
    if (mImageResult == null) {
      return;
    }
    imageResult = mImageResult;
    mImageResult = null;
  }
  imageResult.dispose();
}
项目:GitHub    文件:AnimatedImageFactoryImpl.java   
private CloseableImage getCloseableImage(
    ImageDecodeOptions options,AnimatedImage image,Bitmap.Config bitmapConfig) {
  List<CloseableReference<Bitmap>> decodedFrames = null;
  CloseableReference<Bitmap> previewBitmap = null;
  try {
    final int frameForPreview = options.useLastFrameForPreview ? image.getFrameCount() - 1 : 0;
    if (options.forceStaticImage) {
      return new CloseableStaticBitmap(
          createPreviewBitmap(image,bitmapConfig,frameForPreview),ImmutableQualityInfo.FULL_QUALITY,0);
    }

    if (options.decodeAllFrames) {
      decodedFrames = decodeAllFrames(image,bitmapConfig);
      previewBitmap = CloseableReference.cloneOrNull(decodedFrames.get(frameForPreview));
    }

    if (options.decodePreviewFrame && previewBitmap == null) {
      previewBitmap = createPreviewBitmap(image,frameForPreview);
    }
    AnimatedImageResult animatedImageResult = AnimatedImageResult.newBuilder(image)
        .setPreviewBitmap(previewBitmap)
        .setFrameForPreview(frameForPreview)
        .setDecodedFrames(decodedFrames)
        .build();
    return new CloseableAnimatedImage(animatedImageResult);
  } finally {
    CloseableReference.closeSafely(previewBitmap);
    CloseableReference.closeSafely(decodedFrames);
  }
}
项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateDefaults() {
  WebPImage mockWebPImage = mock(WebPImage.class);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mWebPImageMock.decode(byteBuffer.getNativePtr(),byteBuffer.size()))
      .thenReturn(mockWebPImage);

  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,FAKE_RESOURCE_RELEASER));
  encodedImage.setimageFormat(ImageFormat.UNKNowN);

  CloseableAnimatedImage closeableImage =
      (CloseableAnimatedImage) mAnimatedImageFactory.decodeWebP(
          encodedImage,ImageDecodeOptions.defaults(),DEFAULT_BITMAP_CONfig);

  // Verify we got the right result
  AnimatedImageResult imageResult = closeableImage.getimageResult();
  assertSame(mockWebPImage,imageResult.getimage());
  assertNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verifyZeroInteractions(mMockAnimatedDrawableBackendProvider);
  verifyZeroInteractions(mMockBitmapFactory);
}
项目:GitHub    文件:AnimatedImageFactoryGifImpltest.java   
@Test
public void testCreateDefaults() {
  GifImage mockGifImage = mock(GifImage.class);

  // Expect a call to GifImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mGifImageMock.decode(byteBuffer.getNativePtr(),byteBuffer.size()))
      .thenReturn(mockGifImage);

  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,FAKE_RESOURCE_RELEASER));
  encodedImage.setimageFormat(ImageFormat.UNKNowN);

  CloseableAnimatedImage closeableImage =
      (CloseableAnimatedImage) mAnimatedImageFactory.decodeGif(
          encodedImage,DEFAULT_BITMAP_CONfig);

  // Verify we got the right result
  AnimatedImageResult imageResult = closeableImage.getimageResult();
  assertSame(mockGifImage,imageResult.getimage());
  assertNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verifyZeroInteractions(mMockAnimatedDrawableBackendProvider);
  verifyZeroInteractions(mMockBitmapFactory);
}
项目:fresco    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private AnimationBackend createAnimationBackend(AnimatedImageResult animatedImageResult) {
  AnimatedDrawableBackend animatedDrawableBackend =
      createAnimatedDrawableBackend(animatedImageResult);

  BitmapFrameCache bitmapFrameCache = createBitmapFrameCache(animatedImageResult);
  BitmapFrameRenderer bitmapFrameRenderer =
      new AnimatedDrawableBackendFrameRenderer(bitmapFrameCache,animatedDrawableBackend);

  int numberOfFramesToPrefetch = mNumberOfFramesToPreparesupplier.get();
  BitmapFramePreparationStrategy bitmapFramePreparationStrategy = null;
  BitmapFramePreparer bitmapFramePreparer = null;
  if (numberOfFramesToPrefetch > 0) {
    bitmapFramePreparationStrategy =
        new FixednumberBitmapFramePreparationStrategy(numberOfFramesToPrefetch);
    bitmapFramePreparer = createBitmapFramePreparer(bitmapFrameRenderer);
  }

  BitmapAnimationBackend bitmapAnimationBackend = new BitmapAnimationBackend(
      mPlatformBitmapFactory,mscheduledexecutorserviceForUiThread);
}
项目:fresco    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private BitmapFrameCache createBitmapFrameCache(AnimatedImageResult animatedImageResult) {
  switch (mCachingStrategysupplier.get()) {
    case CACHING_STRATEGY_FRESCO_CACHE:
      return new FrescoFrameCache(createAnimatedFrameCache(animatedImageResult),false);
    case CACHING_STRATEGY_KEEP_LAST_CACHE:
      return new KeepLastFrameCache();
    case CACHING_STRATEGY_NO_CACHE:
    default:
      return new NoOpCache();
  }
}
项目:fresco    文件:AnimatedFactoryV2Impl.java   
private AnimatedDrawableBackendProvider getAnimatedDrawableBackendProvider() {
  if (mAnimatedDrawableBackendProvider == null) {
    mAnimatedDrawableBackendProvider = new AnimatedDrawableBackendProvider() {
      @Override
      public AnimatedDrawableBackend get(AnimatedImageResult animatedImageResult,bounds);
      }
    };
  }
  return mAnimatedDrawableBackendProvider;
}
项目:fresco    文件:AnimatedFactoryV2Impl.java   
private AnimatedImageFactory buildAnimatedImageFactory() {
  AnimatedDrawableBackendProvider animatedDrawableBackendProvider =
      new AnimatedDrawableBackendProvider() {
        @Override
        public AnimatedDrawableBackend get(AnimatedImageResult imageResult,mPlatformBitmapFactory);
}
项目:fresco    文件:CloseableAnimatedImage.java   
@Override
public void close() {
  AnimatedImageResult imageResult;
  synchronized (this) {
    if (mImageResult == null) {
      return;
    }
    imageResult = mImageResult;
    mImageResult = null;
  }
  imageResult.dispose();
}
项目:fresco    文件:AnimatedImageFactoryImpl.java   
private CloseableImage getCloseableImage(
    ImageDecodeOptions options,frameForPreview);
    }
    AnimatedImageResult animatedImageResult = AnimatedImageResult.newBuilder(image)
        .setPreviewBitmap(previewBitmap)
        .setFrameForPreview(frameForPreview)
        .setDecodedFrames(decodedFrames)
        .build();
    return new CloseableAnimatedImage(animatedImageResult);
  } finally {
    CloseableReference.closeSafely(previewBitmap);
    CloseableReference.closeSafely(decodedFrames);
  }
}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateDefaults() {
  WebPImage mockWebPImage = mock(WebPImage.class);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mWebPImageMock.decode(byteBuffer.getNativePtr(),imageResult.getimage());
  assertNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verifyZeroInteractions(mMockAnimatedDrawableBackendProvider);
  verifyZeroInteractions(mMockBitmapFactory);
}
项目:fresco    文件:AnimatedImageFactoryGifImpltest.java   
@Test
public void testCreateDefaults() {
  GifImage mockGifImage = mock(GifImage.class);

  // Expect a call to GifImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mGifImageMock.decode(byteBuffer.getNativePtr(),imageResult.getimage());
  assertNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verifyZeroInteractions(mMockAnimatedDrawableBackendProvider);
  verifyZeroInteractions(mMockBitmapFactory);
}
项目:GitHub    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private AnimatedDrawableBackend createAnimatedDrawableBackend(
    AnimatedImageResult animatedImageResult) {
  AnimatedImage animatedImage = animatedImageResult.getimage();
  Rect initialBounds = new Rect(0,animatedImage.getWidth(),animatedImage.getHeight());
  return mAnimatedDrawableBackendProvider.get(animatedImageResult,initialBounds);
}
项目:GitHub    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private AnimatedFrameCache createAnimatedFrameCache(
    final AnimatedImageResult animatedImageResult) {
  return new AnimatedFrameCache(
      new AnimationFrameCacheKey(animatedImageResult.hashCode()),mbackingCache);
}
项目:GitHub    文件:CloseableAnimatedImage.java   
public CloseableAnimatedImage(AnimatedImageResult imageResult) {
  mImageResult = imageResult;
}
项目:GitHub    文件:CloseableAnimatedImage.java   
public synchronized AnimatedImageResult getimageResult() {
  return mImageResult;
}
项目:GitHub    文件:AnimatedDrawableBackendImpl.java   
@Override
public AnimatedImageResult getAnimatedImageResult() {
  return mAnimatedImageResult;
}
项目:GitHub    文件:TestAnimatedDrawableBackend.java   
@Override
public AnimatedImageResult getAnimatedImageResult() {
  return null;
}
项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithPreviewBitmap() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap = MockBitmapFactory.create(50,50,DEFAULT_BITMAP_CONfig);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mWebPImageMock.decode(byteBuffer.getNativePtr(),byteBuffer.size()))
      .thenReturn(mockWebPImage);
  when(mockWebPImage.getWidth()).thenReturn(50);
  when(mockWebPImage.getHeight()).thenReturn(50);

  // For decoding preview frame,expect some calls.
  final AnimatedDrawableBackend mockAnimatedDrawableBackend =
      createAnimatedDrawableBackendMock(1);

  when(mMockAnimatedDrawableBackendProvider.get(
          any(AnimatedImageResult.class),isNull(Rect.class)))
      .thenReturn(mockAnimatedDrawableBackend);
  when(mMockBitmapFactory.createBitmapInternal(50,DEFAULT_BITMAP_CONfig))
      .thenReturn(CloseableReference.of(mockBitmap,FAKE_BITMAP_RESOURCE_RELEASER));
  AnimatedImageCompositor mockCompositor = mock(AnimatedImageCompositor.class);
  powermockito.whenNew(AnimatedImageCompositor.class)
      .withAnyArguments()
      .thenReturn(mockCompositor);

  ImageDecodeOptions imageDecodeOptions = ImageDecodeOptions.newBuilder()
      .setDecodePreviewFrame(true)
      .build();
  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,FAKE_RESOURCE_RELEASER));
  encodedImage.setimageFormat(ImageFormat.UNKNowN);
  CloseableAnimatedImage closeableImage =
      (CloseableAnimatedImage) mAnimatedImageFactory.decodeWebP(
          encodedImage,imageDecodeOptions,imageResult.getimage());
  assertNotNull(imageResult.getPreviewBitmap());
  assertFalse(imageResult.hasDecodedFrame(0));

  // Should not have interacted with these.
  verify(mMockAnimatedDrawableBackendProvider).get(
      any(AnimatedImageResult.class),isNull(Rect.class));
  verifyNoMoreInteractions(mMockAnimatedDrawableBackendProvider);
  verify(mMockBitmapFactory).createBitmapInternal(50,DEFAULT_BITMAP_CONfig);
  verifyNoMoreInteractions(mMockBitmapFactory);
  verify(mockCompositor).renderFrame(0,mockBitmap);
}
项目:GitHub    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithDecodeAlFrames() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap1 = MockBitmapFactory.create(50,DEFAULT_BITMAP_CONfig);
  Bitmap mockBitmap2 = MockBitmapFactory.create(50,expect some calls.
  final AnimatedDrawableBackend mockAnimatedDrawableBackend =
      createAnimatedDrawableBackendMock(2);
  when(
      mMockAnimatedDrawableBackendProvider.get(
          any(AnimatedImageResult.class),isNull(Rect.class)))
      .thenReturn(mockAnimatedDrawableBackend);

  when(mMockBitmapFactory.createBitmapInternal(50,DEFAULT_BITMAP_CONfig))
      .thenReturn(CloseableReference.of(mockBitmap1,FAKE_BITMAP_RESOURCE_RELEASER))
      .thenReturn(CloseableReference.of(mockBitmap2,FAKE_BITMAP_RESOURCE_RELEASER));
  AnimatedImageCompositor mockCompositor = mock(AnimatedImageCompositor.class);
  powermockito.whenNew(AnimatedImageCompositor.class)
      .withAnyArguments()
      .thenReturn(mockCompositor);

  ImageDecodeOptions imageDecodeOptions = ImageDecodeOptions.newBuilder()
      .setDecodePreviewFrame(true)
      .setDecodeAllFrames(true)
      .build();

  EncodedImage encodedImage = new EncodedImage(
      CloseableReference.of(byteBuffer,imageResult.getimage());
  assertNotNull(imageResult.getDecodedFrame(0));
  assertNotNull(imageResult.getDecodedFrame(1));
  assertNotNull(imageResult.getPreviewBitmap());

  // Should not have interacted with these.
  verify(mMockAnimatedDrawableBackendProvider).get(
      any(AnimatedImageResult.class),isNull(Rect.class));
  verifyNoMoreInteractions(mMockAnimatedDrawableBackendProvider);
  verify(mMockBitmapFactory,times(2)).createBitmapInternal(50,mockBitmap1);
  verify(mockCompositor).renderFrame(1,mockBitmap2);
}
项目:GitHub    文件:AnimatedImageFactoryGifImpltest.java   
@Test
public void testCreateWithPreviewBitmap() throws Exception {
  GifImage mockGifImage = mock(GifImage.class);

  Bitmap mockBitmap = MockBitmapFactory.create(50,DEFAULT_BITMAP_CONfig);

  // Expect a call to WebPImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mGifImageMock.decode(byteBuffer.getNativePtr(),byteBuffer.size()))
      .thenReturn(mockGifImage);
  when(mockGifImage.getWidth()).thenReturn(50);
  when(mockGifImage.getHeight()).thenReturn(50);

  // For decoding preview frame,expect some calls.
  final AnimatedDrawableBackend mockAnimatedDrawableBackend =
      createAnimatedDrawableBackendMock(1);
  when(mMockAnimatedDrawableBackendProvider.get(
      any(AnimatedImageResult.class),FAKE_RESOURCE_RELEASER));
  encodedImage.setimageFormat(ImageFormat.UNKNowN);
  CloseableAnimatedImage closeableImage =
      (CloseableAnimatedImage) mAnimatedImageFactory.decodeGif(
          encodedImage,mockBitmap);
}
项目:GitHub    文件:AnimatedImageFactoryGifImpltest.java   
@Test
public void testCreateWithDecodeAlFrames() throws Exception {
  GifImage mockGifImage = mock(GifImage.class);

  Bitmap mockBitmap1 = MockBitmapFactory.create(50,DEFAULT_BITMAP_CONfig);

  // Expect a call to GifImage.create
  TrivialPooledByteBuffer byteBuffer = createByteBuffer();
  when(mGifImageMock.decode(byteBuffer.getNativePtr(),expect some calls.
  final AnimatedDrawableBackend mockAnimatedDrawableBackend =
      createAnimatedDrawableBackendMock(2);

  when(
      mMockAnimatedDrawableBackendProvider.get(
          any(AnimatedImageResult.class),mockBitmap2);
}
项目:fresco    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private AnimatedDrawableBackend createAnimatedDrawableBackend(
    AnimatedImageResult animatedImageResult) {
  AnimatedImage animatedImage = animatedImageResult.getimage();
  Rect initialBounds = new Rect(0,initialBounds);
}
项目:fresco    文件:ExperimentalBitmapAnimationDrawableFactory.java   
private AnimatedFrameCache createAnimatedFrameCache(
    final AnimatedImageResult animatedImageResult) {
  return new AnimatedFrameCache(
      new AnimationFrameCacheKey(animatedImageResult.hashCode()),mbackingCache);
}
项目:fresco    文件:CloseableAnimatedImage.java   
public CloseableAnimatedImage(AnimatedImageResult imageResult) {
  mImageResult = imageResult;
}
项目:fresco    文件:CloseableAnimatedImage.java   
public synchronized AnimatedImageResult getimageResult() {
  return mImageResult;
}
项目:fresco    文件:AnimatedDrawableBackendImpl.java   
@Override
public AnimatedImageResult getAnimatedImageResult() {
  return mAnimatedImageResult;
}
项目:fresco    文件:TestAnimatedDrawableBackend.java   
@Override
public AnimatedImageResult getAnimatedImageResult() {
  return null;
}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithPreviewBitmap() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap = MockBitmapFactory.create(50,mockBitmap);
}
项目:fresco    文件:AnimatedImageFactoryWebPImpltest.java   
@Test
public void testCreateWithDecodeAlFrames() throws Exception {
  WebPImage mockWebPImage = mock(WebPImage.class);

  Bitmap mockBitmap1 = MockBitmapFactory.create(50,mockBitmap2);
}
项目:fresco    文件:AnimatedImageFactoryGifImpltest.java   
@Test
public void testCreateWithPreviewBitmap() throws Exception {
  GifImage mockGifImage = mock(GifImage.class);

  Bitmap mockBitmap = MockBitmapFactory.create(50,mockBitmap);
}
项目:fresco    文件:AnimatedImageFactoryGifImpltest.java   
@Test
public void testCreateWithDecodeAlFrames() throws Exception {
  GifImage mockGifImage = mock(GifImage.class);

  Bitmap mockBitmap1 = MockBitmapFactory.create(50,mockBitmap2);
}
项目:GitHub    文件:AnimatedDrawableBackendProvider.java   
/**
 * Creates a new {@link AnimatedDrawableBackend}.
 *
 * @param animatedImageResult the image result.
 * @param bounds the initial bounds for the drawable
 * @return a new {@link AnimatedDrawableBackend}
 */
AnimatedDrawableBackend get(AnimatedImageResult animatedImageResult,Rect bounds);
项目:fresco    文件:AnimatedDrawableBackendProvider.java   
/**
 * Creates a new {@link AnimatedDrawableBackend}.
 *
 * @param animatedImageResult the image result.
 * @param bounds the initial bounds for the drawable
 * @return a new {@link AnimatedDrawableBackend}
 */
AnimatedDrawableBackend get(AnimatedImageResult animatedImageResult,Rect bounds);

关于com.facebook.imagepipeline.image.ImageInfo的实例源码facebook源代码的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于com.facebook.animated.webp.WebPImage的实例源码、com.facebook.imagepipeline.animated.base.AnimatedDrawable的实例源码、com.facebook.imagepipeline.animated.base.AnimatedImageFrame的实例源码、com.facebook.imagepipeline.animated.base.AnimatedImageResult的实例源码等相关内容,可以在本站寻找。

本文标签: