java类android.graphics.drawable.StateListDrawable的实例源码

JellyBeanFloatingActionButton.java 文件源码 项目:GitHub 阅读 33 收藏 0 点赞 0 评论 0
/**
 * more advanced usage for fillable in alpha
 *
 * @param circleRect the defined rectangle
 * @return StateListDrawable item
 */
protected StateListDrawable createFillDrawable(RectF circleRect) {
    StateListDrawable drawable = new StateListDrawable();
    drawable.addState(new int[]{android.R.attr.state_pressed}, createAlphaDrawble(circleRect, mColorPressed, mAlpha_press));
    drawable.addState(new int[]{}, createAlphaDrawble(circleRect, mColorNormal, mAlpha_normal));
    return drawable;
}
FloatingActionButton.java 文件源码 项目:GitHub 阅读 34 收藏 0 点赞 0 评论 0
/**
 * @param circleRect the defined rectangle
 * @param alpha      between  0 - 1
 * @return StateListDrawable
 */
protected StateListDrawable createFillDrawable(RectF circleRect, float alpha) {
    StateListDrawable drawable = new StateListDrawable();
    drawable.addState(new int[]{android.R.attr.state_pressed}, createAlphaDrawble(circleRect, mColorPressed, alpha));
    drawable.addState(new int[]{}, createAlphaDrawble(circleRect, mColorNormal, alpha));
    return drawable;
}
FloatingActionButton.java 文件源码 项目:GitHub 阅读 33 收藏 0 点赞 0 评论 0
/**
 * @param circleRect the defined rectangle
 * @return StateListDrawable
 */
protected StateListDrawable createFillDrawable(RectF circleRect) {
    StateListDrawable drawable = new StateListDrawable();
    drawable.addState(new int[]{android.R.attr.state_pressed}, createCircleDrawable(circleRect, mColorPressed));
    drawable.addState(new int[]{}, createCircleDrawable(circleRect, mColorNormal));
    return drawable;
}
DayView.java 文件源码 项目:boohee_v5.6 阅读 36 收藏 0 点赞 0 评论 0
private static Drawable generateBackground(int color, int fadeTime) {
    StateListDrawable drawable = new StateListDrawable();
    drawable.setExitFadeDuration(fadeTime);
    drawable.addState(new int[]{16842912}, generateCircleDrawable(color));
    if (VERSION.SDK_INT >= 21) {
        drawable.addState(new int[]{16842919}, generateRippleDrawable(color));
    } else {
        drawable.addState(new int[]{16842919}, generateCircleDrawable(color));
    }
    drawable.addState(new int[0], generateCircleDrawable(0));
    return drawable;
}
MsgView.java 文件源码 项目:GitHub 阅读 40 收藏 0 点赞 0 评论 0
public void setBgSelector() {
    StateListDrawable bg = new StateListDrawable();

    setDrawable(gd_background, backgroundColor, strokeColor);
    bg.addState(new int[]{-android.R.attr.state_pressed}, gd_background);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {//16
        setBackground(bg);
    } else {
        //noinspection deprecation
        setBackgroundDrawable(bg);
    }
}
MsgView.java 文件源码 项目:GitHub 阅读 30 收藏 0 点赞 0 评论 0
public void setBgSelector() {
    StateListDrawable bg = new StateListDrawable();

    setDrawable(gd_background, backgroundColor, strokeColor);
    bg.addState(new int[]{-android.R.attr.state_pressed}, gd_background);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {//16
        setBackground(bg);
    } else {
        //noinspection deprecation
        setBackgroundDrawable(bg);
    }
}
WoWoStateListColorAnimation.java 文件源码 项目:GitHub 阅读 25 收藏 0 点赞 0 评论 0
private void setColors(View view, int[] colors) {
    Drawable drawable = view.getBackground();
    if (drawable instanceof StateListDrawable) {
        StateListDrawable stateListDrawable = (StateListDrawable) drawable;
        DrawableContainerState drawableContainerState = (DrawableContainerState) stateListDrawable.getConstantState();
        if (drawableContainerState != null) {
            Drawable[] drawables = drawableContainerState.getChildren();
            for (int i = 0; i < colors.length; i++) if (drawables[i] instanceof GradientDrawable) ((GradientDrawable) drawables[i]).setColor(colors[i]);
        }
    } else Log.w(TAG, "Drawable of view must be StateListDrawable in WoWoStateListColorAnimation");
}
NavigationMenuItemView.java 文件源码 项目:boohee_v5.6 阅读 30 收藏 0 点赞 0 评论 0
private StateListDrawable createDefaultBackground() {
    TypedValue value = new TypedValue();
    if (!getContext().getTheme().resolveAttribute(R.attr.colorControlHighlight, value, true)) {
        return null;
    }
    StateListDrawable drawable = new StateListDrawable();
    drawable.addState(CHECKED_STATE_SET, new ColorDrawable(value.data));
    drawable.addState(EMPTY_STATE_SET, new ColorDrawable(0));
    return drawable;
}
DayView.java 文件源码 项目:GitHub 阅读 41 收藏 0 点赞 0 评论 0
private static Drawable generateBackground(int color, int fadeTime, Rect bounds) {
    StateListDrawable drawable = new StateListDrawable();
    drawable.setExitFadeDuration(fadeTime);
    drawable.addState(new int[]{android.R.attr.state_checked}, generateCircleDrawable(color));
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        drawable.addState(new int[]{android.R.attr.state_pressed}, generateRippleDrawable(color, bounds));
    } else {
        drawable.addState(new int[]{android.R.attr.state_pressed}, generateCircleDrawable(color));
    }

    drawable.addState(new int[]{}, generateCircleDrawable(Color.TRANSPARENT));

    return drawable;
}
SelectorFactory.java 文件源码 项目:HeadlineNews 阅读 29 收藏 0 点赞 0 评论 0
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;
}


问题


面经


文章

微信
公众号

扫码关注公众号