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!