@Override public void setLoopCount(int loopCount) { wrapped.setLoopCount(loopCount); }
/** * {@inheritDoc} * If no {@link GlideAnimation} is given or if the animation does not set the * {@link android.graphics.drawable.Drawable} on the view, the drawable is set using * {@link ImageView#setImageDrawable(android.graphics.drawable.Drawable)}. * * @param resource {@inheritDoc} * @param animation {@inheritDoc} */ @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) { if (!resource.isAnimated()) { //TODO: Try to generalize this to other sizes/shapes. // This is a dirty hack that tries to make loading square thumbnails and then square full images less costly // by forcing both the smaller thumb and the larger version to have exactly the same intrinsic dimensions. // If a drawable is replaced in an ImageView by another drawable with different intrinsic dimensions, // the ImageView requests a layout. Scrolling rapidly while replacing thumbs with larger images triggers // lots of these calls and causes significant amounts of jank. float viewRatio = view.getWidth() / (float) view.getHeight(); float drawableRatio = resource.getIntrinsicWidth() / (float) resource.getIntrinsicHeight(); if (Math.abs(viewRatio - 1f) <= SQUARE_RATIO_MARGIN && Math.abs(drawableRatio - 1f) <= SQUARE_RATIO_MARGIN) { resource = new SquaringDrawable(resource, view.getWidth()); } } super.onResourceReady(resource, animation); this.resource = resource; resource.setLoopCount(maxLoopCount); resource.start(); }
resource.setLoopCount(GlideDrawable.LOOP_FOREVER); resource.start();
@Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) { this.mResource = resource; setDrawable(resource); resource.setLoopCount(GlideDrawable.LOOP_FOREVER); resource.start(); }
@Override public void onResourceReady(GlideDrawable glideDrawable, GlideAnimation glideAnimation) { // start GlideDrawable, even if it's not animated (these methods are No-op in that case) glideDrawable.setLoopCount(GlideDrawable.LOOP_FOREVER); glideDrawable.start(); setDrawable(glideDrawable); }