private Drawable tileifyIndeterminate ( Drawable drawable ) { if ( drawable instanceof AnimationDrawable ) { AnimationDrawable background = ( AnimationDrawable ) drawable ; final int N = background . getNumberOfFrames ( ) ; AnimationDrawable newBg = new AnimationDrawable ( ) ; newBg . setOneShot ( background . isOneShot ( ) ) ; for ( int i = 0 ; i < N ; i ++ ) { Drawable frame = tileify ( background . getFrame ( i ) , true ) ; frame . setLevel ( 10000 ) ; newBg . addFrame ( frame , background . getDuration ( i ) ) ; } newBg . setLevel ( 10000 ) ; drawable = newBg ; } return drawable ; }
Convert a AnimationDrawable for use as a barberpole animation . Each frame of the animation is wrapped in a ClipDrawable and given a tiling BitmapShader .