SelectorFactory.java 文件源码

java
阅读 29 收藏 0 点赞 0 评论 0

项目:HeadlineNews 作者:
public StateListDrawable create() {
    StateListDrawable selector = new StateListDrawable();

    //enabled = false
    if (hasSetDisabledBgColor || hasSetDisabledStrokeColor) {
        GradientDrawable disabledShape = getItemShape(mShape, mCornerRadius,
                mDisabledBgColor, mStrokeWidth, mDisabledStrokeColor);
        selector.addState(new int[]{-android.R.attr.state_enabled}, disabledShape);
    }

    //pressed = true
    if (hasSetPressedBgColor || hasSetPressedStrokeColor) {
        GradientDrawable pressedShape = getItemShape(mShape, mCornerRadius,
                mPressedBgColor, mStrokeWidth, mPressedStrokeColor);
        selector.addState(new int[]{android.R.attr.state_pressed}, pressedShape);
    }

    //selected = true
    if (hasSetSelectedBgColor || hasSetSelectedStrokeColor) {
        GradientDrawable selectedShape = getItemShape(mShape, mCornerRadius,
                mSelectedBgColor, mStrokeWidth, mSelectedStrokeColor);
        selector.addState(new int[]{android.R.attr.state_selected}, selectedShape);
    }

    //focused = true
    if (hasSetFocusedBgColor || hasSetFocusedStrokeColor) {
        GradientDrawable focusedShape = getItemShape(mShape, mCornerRadius,
                mFocusedBgColor, mStrokeWidth, mFocusedStrokeColor);
        selector.addState(new int[]{android.R.attr.state_focused}, focusedShape);
    }

    //default
    GradientDrawable defaultShape = getItemShape(mShape, mCornerRadius,
            mDefaultBgColor, mStrokeWidth, mDefaultStrokeColor);
    selector.addState(new int[]{}, defaultShape);

    return selector;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号