belongs to Maven artifact com.android.support:leanback-v17:28.0.0-alpha1
Deprecated since version 27.1.0
DetailsFragmentBackgroundController
  public
  
  
  
  class
  DetailsFragmentBackgroundController
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.support.v17.leanback.app.DetailsFragmentBackgroundController | 
      This class was deprecated
      in API level 27.1.0.
    use DetailsSupportFragmentBackgroundController
  
Controller for DetailsFragment parallax background and embedded video play.
 The parallax background drawable is made of two parts: cover drawable (by default
 FitWidthBitmapDrawable) above the details overview row and bottom drawable (by default
 ColorDrawable) below the details overview row. While vertically scrolling rows, the size
 of cover drawable and bottom drawable will be updated and the cover drawable will by default
 perform a parallax shift using PROPERTY_VERTICAL_OFFSET.
 
        ***************************
        *      Cover Drawable     *
        * (FitWidthBitmapDrawable)*
        *                         *
        ***************************
        *    DetailsOverviewRow   *
        *                         *
        ***************************
        *     Bottom Drawable     *
        *      (ColorDrawable)    *
        *         Related         *
        *         Content         *
        ***************************
 enableParallax() and/or setupVideoPlayback(PlaybackGlue) explicitly.
 The PlaybackGlue is automatically play() when fragment starts and
 pause() when fragment stops. When video is ready to play, cover drawable
 will be faded out.
 Example:
 
 DetailsFragmentBackgroundController mController = new DetailsFragmentBackgroundController(this);
 public void onCreate(Bundle savedInstance) {
     super.onCreate(savedInstance);
     MediaPlayerGlue player = new MediaPlayerGlue(..);
     player.setUrl(...);
     mController.enableParallax();
     mController.setupVideoPlayback(player);
 }
 static class MyLoadBitmapTask extends ... {
     WeakReference mFragmentRef;
     MyLoadBitmapTask(MyFragment fragment) {
         mFragmentRef = new WeakReference(fragment);
     }
     protected void onPostExecute(Bitmap bitmap) {
         MyFragment fragment = mFragmentRef.get();
         if (fragment != null) {
             fragment.mController.setCoverBitmap(bitmap);
         }
     }
 }
 public void onStart() {
     new MyLoadBitmapTask(this).execute(url);
 }
 public void onStop() {
     mController.setCoverBitmap(null);
 }
  
 To customize cover drawable and/or bottom drawable, app should call
 enableParallax(Drawable, Drawable, ParallaxTarget.PropertyValuesHolderTarget).
 If app supplies a custom cover Drawable, it should not call setCoverBitmap(Bitmap).
 If app supplies a custom bottom Drawable, it should not call setSolidColor(int).
 
 To customize playback fragment, app should override onCreateVideoFragment() and
 onCreateGlueHost().
 
Summary
| Public constructors | |
|---|---|
| 
      DetailsFragmentBackgroundController(DetailsFragment fragment)
      Creates a DetailsFragmentBackgroundController for a DetailsFragment. | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        boolean | 
      canNavigateToVideoFragment()
      Precondition allows user navigate to video fragment using DPAD. | 
| 
        
        
        
        
        
        void | 
      enableParallax(Drawable coverDrawable, Drawable bottomDrawable, ParallaxTarget.PropertyValuesHolderTarget coverDrawableParallaxTarget)
      Enables parallax background using a custom cover drawable at top and a custom bottom drawable. | 
| 
        
        
        
        
        
        void | 
      enableParallax()
      Enables default parallax background using a  | 
| 
        
        
        
        final
        
        Fragment | 
      findOrCreateVideoFragment()
      Adds or gets fragment for rendering video in DetailsFragment. | 
| 
        
        
        
        final
        
        Drawable | 
      getBottomDrawable()
      Returns the drawable at bottom. | 
| 
        
        
        
        final
        
        Bitmap | 
      getCoverBitmap()
      Returns Bitmap set by  | 
| 
        
        
        
        final
        
        Drawable | 
      getCoverDrawable()
      Returns the cover drawable at top. | 
| 
        
        
        
        final
        
        int | 
      getParallaxDrawableMaxOffset()
      Returns Default parallax offset in pixels for bitmap moving vertically. | 
| 
        
        
        
        final
        
        PlaybackGlue | 
      getPlaybackGlue()
      Returns current PlaybackGlue or null if not set or cleared. | 
| 
        
        
        
        final
        
        int | 
      getSolidColor()
      Returns color set by  | 
| 
        
        
        
        
        
        PlaybackGlueHost | 
      onCreateGlueHost()
      Creates a PlaybackGlueHost to host PlaybackGlue. | 
| 
        
        
        
        
        
        Fragment | 
      onCreateVideoFragment()
      Creates a Fragment to host  | 
| 
        
        
        
        final
        
        void | 
      setCoverBitmap(Bitmap bitmap)
      Convenient method to set Bitmap in cover drawable. | 
| 
        
        
        
        final
        
        void | 
      setParallaxDrawableMaxOffset(int offset)
      Sets default parallax offset in pixels for bitmap moving vertically. | 
| 
        
        
        
        final
        
        void | 
      setSolidColor(int color)
      Convenient method to set color in bottom drawable. | 
| 
        
        
        
        
        
        void | 
      setupVideoPlayback(PlaybackGlue playbackGlue)
      Enable video playback and set proper  | 
| 
        
        
        
        final
        
        void | 
      switchToRows()
      Switch to rows fragment. | 
| 
        
        
        
        final
        
        void | 
      switchToVideo()
      Switch to video fragment, note that this method is not affected by result of
  | 
| Inherited methods | |
|---|---|
|  From
class 
  
    java.lang.Object
  
 | |
Public constructors
DetailsFragmentBackgroundController
DetailsFragmentBackgroundController (DetailsFragment fragment)
Creates a DetailsFragmentBackgroundController for a DetailsFragment. Note that each DetailsFragment can only associate with one DetailsFragmentBackgroundController.
| Parameters | |
|---|---|
| fragment | DetailsFragment: The DetailsFragment to control background and embedded video playing. | 
| Throws | |
|---|---|
| IllegalStateException | If fragment was already associated with another controller. | 
Public methods
canNavigateToVideoFragment
boolean canNavigateToVideoFragment ()
Precondition allows user navigate to video fragment using DPAD. Default implementation
 returns true if PlaybackGlue is not null. Subclass may override, e.g. only allow navigation
 when isPrepared() is true. Note this method does not block
 app calls switchToVideo().
| Returns | |
|---|---|
| boolean | True allow to navigate to video fragment. | 
enableParallax
void enableParallax (Drawable coverDrawable, Drawable bottomDrawable, ParallaxTarget.PropertyValuesHolderTarget coverDrawableParallaxTarget)
Enables parallax background using a custom cover drawable at top and a custom bottom
 drawable. This method must be called before setupVideoPlayback(PlaybackGlue).
| Parameters | |
|---|---|
| coverDrawable | Drawable: Custom cover drawable shown at top.setCoverBitmap(Bitmap)will not work if coverDrawable is notFitWidthBitmapDrawable;
                      in that case it's app's responsibility to set content into
                      coverDrawable. | 
| bottomDrawable | Drawable: Drawable shown at bottom.setSolidColor(int)will not work
                       if bottomDrawable is notColorDrawable; in that case it's app's
                       responsibility to set content of bottomDrawable. | 
| coverDrawableParallaxTarget | ParallaxTarget.PropertyValuesHolderTarget: Target to perform parallax effect within coverDrawable.
                                    Use null for no parallax movement effect.
                                    Example to move bitmap within FitWidthBitmapDrawable:
                                    new ParallaxTarget.PropertyValuesHolderTarget(
                                        coverDrawable, PropertyValuesHolder.ofInt(
                                            FitWidthBitmapDrawable.PROPERTY_VERTICAL_OFFSET,
                                            0, -120)) | 
| Throws | |
|---|---|
| IllegalStateException | If setupVideoPlayback(PlaybackGlue)was called. | 
enableParallax
void enableParallax ()
Enables default parallax background using a FitWidthBitmapDrawable as cover drawable
 and ColorDrawable as bottom drawable. A vertical parallax movement will be applied
 to the FitWidthBitmapDrawable. App may use setSolidColor(int) and
 setCoverBitmap(Bitmap) to change the content of bottom drawable and cover drawable.
 This method must be called before setupVideoPlayback(PlaybackGlue).
| Throws | |
|---|---|
| IllegalStateException | If setupVideoPlayback(PlaybackGlue)was called. | 
See also:
findOrCreateVideoFragment
Fragment findOrCreateVideoFragment ()
Adds or gets fragment for rendering video in DetailsFragment. A subclass that
 overrides onCreateGlueHost() should call this method to get a fragment for creating
 a PlaybackGlueHost.
| Returns | |
|---|---|
| Fragment | Fragment the added or restored fragment responsible for rendering video. | 
See also:
getBottomDrawable
Drawable getBottomDrawable ()
Returns the drawable at bottom. Returns null if enableParallax() is not called.
 By default it's a ColorDrawable.
| Returns | |
|---|---|
| Drawable | The bottom drawable. | 
getCoverBitmap
Bitmap getCoverBitmap ()
Returns Bitmap set by setCoverBitmap(Bitmap).
| Returns | |
|---|---|
| Bitmap | Bitmap for cover drawable. | 
getCoverDrawable
Drawable getCoverDrawable ()
Returns the cover drawable at top. Returns null if enableParallax() is not called.
 By default it's a FitWidthBitmapDrawable.
| Returns | |
|---|---|
| Drawable | The cover drawable at top. | 
getParallaxDrawableMaxOffset
int getParallaxDrawableMaxOffset ()
Returns Default parallax offset in pixels for bitmap moving vertically. When 0, a default value would be used.
| Returns | |
|---|---|
| int | Default parallax offset in pixels for bitmap moving vertically. | 
See also:
getPlaybackGlue
PlaybackGlue getPlaybackGlue ()
Returns current PlaybackGlue or null if not set or cleared.
| Returns | |
|---|---|
| PlaybackGlue | Current PlaybackGlue or null | 
getSolidColor
int getSolidColor ()
Returns color set by setSolidColor(int).
| Returns | |
|---|---|
| int | Solid color used for bottom drawable. | 
onCreateGlueHost
PlaybackGlueHost onCreateGlueHost ()
Creates a PlaybackGlueHost to host PlaybackGlue. App may override this if it overrides
 onCreateVideoFragment(). This method must be called after calling Fragment
 super.onCreate(). When override this method, app may call
 findOrCreateVideoFragment() to get or create a fragment.
| Returns | |
|---|---|
| PlaybackGlueHost | A new PlaybackGlueHost to host PlaybackGlue. | 
onCreateVideoFragment
Fragment onCreateVideoFragment ()
Creates a Fragment to host PlaybackGlue. Returns a new VideoFragment by
 default. App may override and return a different fragment and it also must override
 onCreateGlueHost().
| Returns | |
|---|---|
| Fragment | A new fragment used in onCreateGlueHost(). | 
setCoverBitmap
void setCoverBitmap (Bitmap bitmap)
Convenient method to set Bitmap in cover drawable. If app is not using default
 FitWidthBitmapDrawable, app should not use this method  It's safe to call
 setCoverBitmap() before calling enableParallax().
| Parameters | |
|---|---|
| bitmap | Bitmap: bitmap to set as cover. | 
setParallaxDrawableMaxOffset
void setParallaxDrawableMaxOffset (int offset)
Sets default parallax offset in pixels for bitmap moving vertically. This method must
 be called before enableParallax().
| Parameters | |
|---|---|
| offset | int: Offset in pixels (e.g. 120). | 
See also:
setSolidColor
void setSolidColor (int color)
Convenient method to set color in bottom drawable. If app is not using default
 ColorDrawable, app should not use this method. It's safe to call setSolidColor()
 before calling enableParallax().
| Parameters | |
|---|---|
| color | int: color for bottom drawable. | 
setupVideoPlayback
void setupVideoPlayback (PlaybackGlue playbackGlue)
Enable video playback and set proper PlaybackGlueHost. This method by default
 creates a VideoFragment and VideoFragmentGlueHost to host the PlaybackGlue.
 This method must be called after calling details Fragment super.onCreate(). This method
 can be called multiple times to replace existing PlaybackGlue or calling
 setupVideoPlayback(null) to clear. Note a typical PlaybackGlue subclass releases
 resources in onDetachedFromHost(), when the PlaybackGlue
 subclass is not doing that, it's app's responsibility to release the resources.
| Parameters | |
|---|---|
| playbackGlue | PlaybackGlue: The new PlaybackGlue to set as background or null to clear existing one. | 
switchToVideo
void switchToVideo ()
Switch to video fragment, note that this method is not affected by result of
 canNavigateToVideoFragment(). If the method is called in DetailsFragment.onCreate()
 it will make video fragment to be initially focused once it is created.
 
Calling switchToVideo() in DetailsFragment.onCreate() will clear the activity enter transition and shared element transition.
 If switchToVideo() is called after prepareEntranceTransition() and
 before onEntranceTransitionEnd(), it will be ignored.
 
 If prepareEntranceTransition() is called after switchToVideo(), an
 IllegalStateException will be thrown.
 
- Interfaces- BrowseFragment.FragmentHost
- BrowseFragment.MainFragmentAdapterProvider
- BrowseFragment.MainFragmentRowsAdapterProvider
- BrowseSupportFragment.FragmentHost
- BrowseSupportFragment.MainFragmentAdapterProvider
- BrowseSupportFragment.MainFragmentRowsAdapterProvider
- HeadersFragment.OnHeaderClickedListener
- HeadersFragment.OnHeaderViewSelectedListener
- HeadersSupportFragment.OnHeaderClickedListener
- HeadersSupportFragment.OnHeaderViewSelectedListener
- SearchFragment.SearchResultProvider
- SearchSupportFragment.SearchResultProvider
 
- Classes- BackgroundManager
- BaseFragment
- BaseSupportFragment
- BrandedFragment
- BrandedSupportFragment
- BrowseFragment
- BrowseFragment.BrowseTransitionListener
- BrowseFragment.FragmentFactory
- BrowseFragment.ListRowFragmentFactory
- BrowseFragment.MainFragmentAdapter
- BrowseFragment.MainFragmentAdapterRegistry
- BrowseFragment.MainFragmentRowsAdapter
- BrowseSupportFragment
- BrowseSupportFragment.BrowseTransitionListener
- BrowseSupportFragment.FragmentFactory
- BrowseSupportFragment.ListRowFragmentFactory
- BrowseSupportFragment.MainFragmentAdapter
- BrowseSupportFragment.MainFragmentAdapterRegistry
- BrowseSupportFragment.MainFragmentRowsAdapter
- DetailsFragment
- DetailsFragmentBackgroundController
- DetailsSupportFragment
- DetailsSupportFragmentBackgroundController
- ErrorFragment
- ErrorSupportFragment
- GuidedStepFragment
- GuidedStepSupportFragment
- HeadersFragment
- HeadersSupportFragment
- OnboardingFragment
- OnboardingSupportFragment
- PlaybackFragment
- PlaybackFragmentGlueHost
- PlaybackSupportFragment
- PlaybackSupportFragmentGlueHost
- ProgressBarManager
- RowsFragment
- RowsFragment.MainFragmentAdapter
- RowsFragment.MainFragmentRowsAdapter
- RowsSupportFragment
- RowsSupportFragment.MainFragmentAdapter
- RowsSupportFragment.MainFragmentRowsAdapter
- SearchFragment
- SearchSupportFragment
- VerticalGridFragment
- VerticalGridSupportFragment
- VideoFragment
- VideoFragmentGlueHost
- VideoSupportFragment
- VideoSupportFragmentGlueHost
 
