Most visited

Recently visited

ShadowOverlayHelper

public final class ShadowOverlayHelper
extends Object

java.lang.Object
   ↳ android.support.v17.leanback.widget.ShadowOverlayHelper


ShadowOverlayHelper是阴影,叠加颜色和圆角的辅助类。 实现阴影,叠加颜色有很多选择。 使用ShadowOverlayHelper.Builder对其进行初始化,并根据用户选择的选项和当前平台版本确定最佳策略。

  • For shadow: it may use 9-patch with opticalBounds or Z-value based shadow for API >= 21. When 9-patch is used, it requires a ShadowOverlayContainer to include 9-patch views.
  • For overlay: it may use ShadowOverlayContainer which overrides draw() or it may use setForeground(new ColorDrawable()) for API>=23. The foreground support might be disabled if rounded corner is applied due to performance reason.
  • For rounded-corner: it uses a ViewOutlineProvider for API>=21. There are two different strategies: use Wrapper with a ShadowOverlayContainer; or apply rounded corner, overlay and rounded-corner to the view itself. Below is an example of how helper is used. ShadowOverlayHelper mHelper = new ShadowOverlayHelper.Builder(). .needsOverlay(true).needsRoundedCorner(true).needsShadow(true) .build(); mHelper.prepareParentForShadow(parentView); // apply optical-bounds for 9-patch shadow. mHelper.setOverlayColor(view, Color.argb(0x80, 0x80, 0x80, 0x80)); mHelper.setShadowFocusLevel(view, 1.0f); ... View initializeView(View view) { if (mHelper.needsWrapper()) { ShadowOverlayContainer wrapper = mHelper.createShadowOverlayContainer(context); wrapper.wrap(view); return wrapper; } else { mHelper.onViewCreated(view); return view; } } ...

    Summary

    Nested classes

    class ShadowOverlayHelper.Builder

    用于创建ShadowOverlayHelper的创建器。

    class ShadowOverlayHelper.Options

    ShadowOverlayContainer的选项值。

    Constants

    int SHADOW_DYNAMIC

    阴影取决于视图的大小,形状和位置。

    int SHADOW_NONE

    没有影子。

    int SHADOW_STATIC

    阴影是固定的。

    Public methods

    ShadowOverlayContainer createShadowOverlayContainer(Context context)

    为此帮助者创建ShadowOverlayContainer。

    int getShadowType()
    boolean needsOverlay()
    boolean needsRoundedCorner()
    boolean needsWrapper()

    如果需要“包装器”ShadowOverlayContainer,则返回true。

    void onViewCreated(View view)

    创建视图时,必须调用 needsWrapper()为假的情况。

    void prepareParentForShadow(ViewGroup parent)

    在使用阴影之前,必须在容器的父级上调用 prepareParentForShadow(ViewGroup)

    static void setNoneWrapperOverlayColor(View view, int color)

    为ShadowOverlayContainer以外的视图设置覆盖颜色。

    static void setNoneWrapperShadowFocusLevel(View view, float level)

    设置阴影对焦水平(0到1)。

    void setOverlayColor(View view, int color)

    为视图设置覆盖颜色,如果needsWrapper()为true或其他视图类型,则它可以是ShadowOverlayContainer。

    void setShadowFocusLevel(View view, float level)

    设置阴影对焦水平(0到1)。

    static boolean supportsDynamicShadow()

    如果平台sdk支持动态阴影,则返回true。

    static boolean supportsForeground()

    如果支持view.setForeground(),则返回true。

    static boolean supportsRoundedCorner()

    如果平台sdk通过轮廓支持圆角,则返回true。

    static boolean supportsShadow()

    如果平台sdk支持阴影,则返回true。

    Inherited methods

    From class java.lang.Object

    Constants

    SHADOW_DYNAMIC

    int SHADOW_DYNAMIC

    阴影取决于视图的大小,形状和位置。

    常量值:3(0x00000003)

    SHADOW_NONE

    int SHADOW_NONE

    没有影子。

    常数值:1(0x00000001)

    SHADOW_STATIC

    int SHADOW_STATIC

    阴影是固定的。

    常量值:2(0x00000002)

    Public methods

    createShadowOverlayContainer

    ShadowOverlayContainer createShadowOverlayContainer (Context context)

    为此帮助者创建ShadowOverlayContainer。

    Parameters
    context Context: Context to create view.
    Returns
    ShadowOverlayContainer ShadowOverlayContainer.

    getShadowType

    int getShadowType ()

    Returns
    int

    needsOverlay

    boolean needsOverlay ()

    Returns
    boolean

    needsRoundedCorner

    boolean needsRoundedCorner ()

    Returns
    boolean

    needsWrapper

    boolean needsWrapper ()

    如果需要“包装器”ShadowOverlayContainer,则返回true。 当needsWrapper()为true时,请调用createShadowOverlayContainer(Context)来创建包装器。

    Returns
    boolean

    onViewCreated

    void onViewCreated (View view)

    创建视图时,必须调用 needsWrapper()为假的情况。

    prepareParentForShadow

    void prepareParentForShadow (ViewGroup parent)

    必须在使用阴影之前在容器的父级上调用prepareParentForShadow(ViewGroup) 根据阴影类型,可能会应用光学边界。

    Parameters
    parent ViewGroup

    setNoneWrapperOverlayColor

    void setNoneWrapperOverlayColor (View view, 
                    int color)

    为ShadowOverlayContainer以外的视图设置覆盖颜色。 另见setOverlayColor(int)

    Parameters
    view View
    color int

    setNoneWrapperShadowFocusLevel

    void setNoneWrapperShadowFocusLevel (View view, 
                    float level)

    设置阴影对焦水平(0到1)。 0为未聚焦,1为完全聚焦。 这是用于除ShadowOverlayContainer之外的视图。 另见setShadowFocusLevel(float)

    Parameters
    view View
    level float

    setOverlayColor

    void setOverlayColor (View view, 
                    int color)

    为视图设置覆盖颜色,如果needsWrapper()为true或其他视图类型,则它可以是ShadowOverlayContainer。

    Parameters
    view View
    color int

    setShadowFocusLevel

    void setShadowFocusLevel (View view, 
                    float level)

    设置阴影对焦水平(0到1)。 0为未聚焦,1为完全聚焦。

    Parameters
    view View
    level float

    supportsDynamicShadow

    boolean supportsDynamicShadow ()

    如果平台sdk支持动态阴影,则返回true。

    Returns
    boolean

    supportsForeground

    boolean supportsForeground ()

    如果支持view.setForeground(),则返回true。

    Returns
    boolean

    supportsRoundedCorner

    boolean supportsRoundedCorner ()

    如果平台sdk通过轮廓支持圆角,则返回true。

    Returns
    boolean

    supportsShadow

    boolean supportsShadow ()

    如果平台sdk支持阴影,则返回true。

    Returns
    boolean
  • Hooray!