android.graphics.drawable.Drawable#parseTintMode()源码实例Demo

下面列出了android.graphics.drawable.Drawable#parseTintMode() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: android_9.0.0_r45   文件: CompoundButton.java
public CompoundButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    final TypedArray a = context.obtainStyledAttributes(
            attrs, com.android.internal.R.styleable.CompoundButton, defStyleAttr, defStyleRes);

    final Drawable d = a.getDrawable(com.android.internal.R.styleable.CompoundButton_button);
    if (d != null) {
        setButtonDrawable(d);
    }

    if (a.hasValue(R.styleable.CompoundButton_buttonTintMode)) {
        mButtonTintMode = Drawable.parseTintMode(a.getInt(
                R.styleable.CompoundButton_buttonTintMode, -1), mButtonTintMode);
        mHasButtonTintMode = true;
    }

    if (a.hasValue(R.styleable.CompoundButton_buttonTint)) {
        mButtonTintList = a.getColorStateList(R.styleable.CompoundButton_buttonTint);
        mHasButtonTint = true;
    }

    final boolean checked = a.getBoolean(
            com.android.internal.R.styleable.CompoundButton_checked, false);
    setChecked(checked);
    mCheckedFromResource = true;

    a.recycle();

    applyButtonTint();
}
 
源代码2 项目: android_9.0.0_r45   文件: CheckedTextView.java
public CheckedTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    final TypedArray a = context.obtainStyledAttributes(
            attrs, R.styleable.CheckedTextView, defStyleAttr, defStyleRes);

    final Drawable d = a.getDrawable(R.styleable.CheckedTextView_checkMark);
    if (d != null) {
        setCheckMarkDrawable(d);
    }

    if (a.hasValue(R.styleable.CheckedTextView_checkMarkTintMode)) {
        mCheckMarkTintMode = Drawable.parseTintMode(a.getInt(
                R.styleable.CheckedTextView_checkMarkTintMode, -1), mCheckMarkTintMode);
        mHasCheckMarkTintMode = true;
    }

    if (a.hasValue(R.styleable.CheckedTextView_checkMarkTint)) {
        mCheckMarkTintList = a.getColorStateList(R.styleable.CheckedTextView_checkMarkTint);
        mHasCheckMarkTint = true;
    }

    mCheckMarkGravity = a.getInt(R.styleable.CheckedTextView_checkMarkGravity, Gravity.END);

    final boolean checked = a.getBoolean(R.styleable.CheckedTextView_checked, false);
    setChecked(checked);

    a.recycle();

    applyCheckMarkTint();
}
 
源代码3 项目: android_9.0.0_r45   文件: MenuInflater.java
/**
 * Called when the parser is pointing to an item tag.
 */
public void readItem(AttributeSet attrs) {
    TypedArray a = mContext.obtainStyledAttributes(attrs,
            com.android.internal.R.styleable.MenuItem);

    // Inherit attributes from the group as default value
    itemId = a.getResourceId(com.android.internal.R.styleable.MenuItem_id, defaultItemId);
    final int category = a.getInt(com.android.internal.R.styleable.MenuItem_menuCategory, groupCategory);
    final int order = a.getInt(com.android.internal.R.styleable.MenuItem_orderInCategory, groupOrder);
    itemCategoryOrder = (category & Menu.CATEGORY_MASK) | (order & Menu.USER_MASK);
    itemTitle = a.getText(com.android.internal.R.styleable.MenuItem_title);
    itemTitleCondensed = a.getText(com.android.internal.R.styleable.MenuItem_titleCondensed);
    itemIconResId = a.getResourceId(com.android.internal.R.styleable.MenuItem_icon, 0);
    if (a.hasValue(com.android.internal.R.styleable.MenuItem_iconTintMode)) {
        itemIconTintMode = Drawable.parseTintMode(a.getInt(
                com.android.internal.R.styleable.MenuItem_iconTintMode, -1),
                itemIconTintMode);
    } else {
        // Reset to null so that it's not carried over to the next item
        itemIconTintMode = null;
    }
    if (a.hasValue(com.android.internal.R.styleable.MenuItem_iconTint)) {
        itemIconTintList = a.getColorStateList(
                com.android.internal.R.styleable.MenuItem_iconTint);
    } else {
        // Reset to null so that it's not carried over to the next item
        itemIconTintList = null;
    }

    itemAlphabeticShortcut =
            getShortcut(a.getString(com.android.internal.R.styleable.MenuItem_alphabeticShortcut));
    itemAlphabeticModifiers =
            a.getInt(com.android.internal.R.styleable.MenuItem_alphabeticModifiers,
                    KeyEvent.META_CTRL_ON);
    itemNumericShortcut =
            getShortcut(a.getString(com.android.internal.R.styleable.MenuItem_numericShortcut));
    itemNumericModifiers =
            a.getInt(com.android.internal.R.styleable.MenuItem_numericModifiers,
                    KeyEvent.META_CTRL_ON);
    if (a.hasValue(com.android.internal.R.styleable.MenuItem_checkable)) {
        // Item has attribute checkable, use it
        itemCheckable = a.getBoolean(com.android.internal.R.styleable.MenuItem_checkable, false) ? 1 : 0;
    } else {
        // Item does not have attribute, use the group's (group can have one more state
        // for checkable that represents the exclusive checkable)
        itemCheckable = groupCheckable;
    }
    itemChecked = a.getBoolean(com.android.internal.R.styleable.MenuItem_checked, defaultItemChecked);
    itemVisible = a.getBoolean(com.android.internal.R.styleable.MenuItem_visible, groupVisible);
    itemEnabled = a.getBoolean(com.android.internal.R.styleable.MenuItem_enabled, groupEnabled);
    itemShowAsAction = a.getInt(com.android.internal.R.styleable.MenuItem_showAsAction, -1);
    itemListenerMethodName = a.getString(com.android.internal.R.styleable.MenuItem_onClick);
    itemActionViewLayout = a.getResourceId(com.android.internal.R.styleable.MenuItem_actionLayout, 0);
    itemActionViewClassName = a.getString(com.android.internal.R.styleable.MenuItem_actionViewClass);
    itemActionProviderClassName = a.getString(com.android.internal.R.styleable.MenuItem_actionProviderClass);

    final boolean hasActionProvider = itemActionProviderClassName != null;
    if (hasActionProvider && itemActionViewLayout == 0 && itemActionViewClassName == null) {
        itemActionProvider = newInstance(itemActionProviderClassName,
                    ACTION_PROVIDER_CONSTRUCTOR_SIGNATURE,
                    mActionProviderConstructorArguments);
    } else {
        if (hasActionProvider) {
            Log.w(LOG_TAG, "Ignoring attribute 'actionProviderClass'."
                    + " Action view already specified.");
        }
        itemActionProvider = null;
    }

    itemContentDescription =
            a.getText(com.android.internal.R.styleable.MenuItem_contentDescription);
    itemTooltipText = a.getText(com.android.internal.R.styleable.MenuItem_tooltipText);

    a.recycle();

    itemAdded = false;
}
 
源代码4 项目: android_9.0.0_r45   文件: Switch.java
/**
 * Construct a new Switch with a default style determined by the given theme
 * attribute or style resource, overriding specific style attributes as
 * requested.
 *
 * @param context The Context that will determine this widget's theming.
 * @param attrs Specification of attributes that should deviate from the
 *        default styling.
 * @param defStyleAttr An attribute in the current theme that contains a
 *        reference to a style resource that supplies default values for
 *        the view. Can be 0 to not look for defaults.
 * @param defStyleRes A resource identifier of a style resource that
 *        supplies default values for the view, used only if
 *        defStyleAttr is 0 or can not be found in the theme. Can be 0
 *        to not look for defaults.
 */
public Switch(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);

    final Resources res = getResources();
    mTextPaint.density = res.getDisplayMetrics().density;
    mTextPaint.setCompatibilityScaling(res.getCompatibilityInfo().applicationScale);

    final TypedArray a = context.obtainStyledAttributes(
            attrs, com.android.internal.R.styleable.Switch, defStyleAttr, defStyleRes);
    mThumbDrawable = a.getDrawable(com.android.internal.R.styleable.Switch_thumb);
    if (mThumbDrawable != null) {
        mThumbDrawable.setCallback(this);
    }
    mTrackDrawable = a.getDrawable(com.android.internal.R.styleable.Switch_track);
    if (mTrackDrawable != null) {
        mTrackDrawable.setCallback(this);
    }
    mTextOn = a.getText(com.android.internal.R.styleable.Switch_textOn);
    mTextOff = a.getText(com.android.internal.R.styleable.Switch_textOff);
    mShowText = a.getBoolean(com.android.internal.R.styleable.Switch_showText, true);
    mThumbTextPadding = a.getDimensionPixelSize(
            com.android.internal.R.styleable.Switch_thumbTextPadding, 0);
    mSwitchMinWidth = a.getDimensionPixelSize(
            com.android.internal.R.styleable.Switch_switchMinWidth, 0);
    mSwitchPadding = a.getDimensionPixelSize(
            com.android.internal.R.styleable.Switch_switchPadding, 0);
    mSplitTrack = a.getBoolean(com.android.internal.R.styleable.Switch_splitTrack, false);

    mUseFallbackLineSpacing = context.getApplicationInfo().targetSdkVersion >= VERSION_CODES.P;

    ColorStateList thumbTintList = a.getColorStateList(
            com.android.internal.R.styleable.Switch_thumbTint);
    if (thumbTintList != null) {
        mThumbTintList = thumbTintList;
        mHasThumbTint = true;
    }
    PorterDuff.Mode thumbTintMode = Drawable.parseTintMode(
            a.getInt(com.android.internal.R.styleable.Switch_thumbTintMode, -1), null);
    if (mThumbTintMode != thumbTintMode) {
        mThumbTintMode = thumbTintMode;
        mHasThumbTintMode = true;
    }
    if (mHasThumbTint || mHasThumbTintMode) {
        applyThumbTint();
    }

    ColorStateList trackTintList = a.getColorStateList(
            com.android.internal.R.styleable.Switch_trackTint);
    if (trackTintList != null) {
        mTrackTintList = trackTintList;
        mHasTrackTint = true;
    }
    PorterDuff.Mode trackTintMode = Drawable.parseTintMode(
            a.getInt(com.android.internal.R.styleable.Switch_trackTintMode, -1), null);
    if (mTrackTintMode != trackTintMode) {
        mTrackTintMode = trackTintMode;
        mHasTrackTintMode = true;
    }
    if (mHasTrackTint || mHasTrackTintMode) {
        applyTrackTint();
    }

    final int appearance = a.getResourceId(
            com.android.internal.R.styleable.Switch_switchTextAppearance, 0);
    if (appearance != 0) {
        setSwitchTextAppearance(context, appearance);
    }
    a.recycle();

    final ViewConfiguration config = ViewConfiguration.get(context);
    mTouchSlop = config.getScaledTouchSlop();
    mMinFlingVelocity = config.getScaledMinimumFlingVelocity();

    // Refresh display with current params
    refreshDrawableState();
    setChecked(isChecked());
}
 
源代码5 项目: android_9.0.0_r45   文件: ImageView.java
public ImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr,
        int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    initImageView();

    // ImageView is not important by default, unless app developer overrode attribute.
    if (getImportantForAutofill() == IMPORTANT_FOR_AUTOFILL_AUTO) {
        setImportantForAutofill(IMPORTANT_FOR_AUTOFILL_NO);
    }

    final TypedArray a = context.obtainStyledAttributes(
            attrs, R.styleable.ImageView, defStyleAttr, defStyleRes);

    final Drawable d = a.getDrawable(R.styleable.ImageView_src);
    if (d != null) {
        setImageDrawable(d);
    }

    mBaselineAlignBottom = a.getBoolean(R.styleable.ImageView_baselineAlignBottom, false);
    mBaseline = a.getDimensionPixelSize(R.styleable.ImageView_baseline, -1);

    setAdjustViewBounds(a.getBoolean(R.styleable.ImageView_adjustViewBounds, false));
    setMaxWidth(a.getDimensionPixelSize(R.styleable.ImageView_maxWidth, Integer.MAX_VALUE));
    setMaxHeight(a.getDimensionPixelSize(R.styleable.ImageView_maxHeight, Integer.MAX_VALUE));

    final int index = a.getInt(R.styleable.ImageView_scaleType, -1);
    if (index >= 0) {
        setScaleType(sScaleTypeArray[index]);
    }

    if (a.hasValue(R.styleable.ImageView_tint)) {
        mDrawableTintList = a.getColorStateList(R.styleable.ImageView_tint);
        mHasDrawableTint = true;

        // Prior to L, this attribute would always set a color filter with
        // blending mode SRC_ATOP. Preserve that default behavior.
        mDrawableTintMode = PorterDuff.Mode.SRC_ATOP;
        mHasDrawableTintMode = true;
    }

    if (a.hasValue(R.styleable.ImageView_tintMode)) {
        mDrawableTintMode = Drawable.parseTintMode(a.getInt(
                R.styleable.ImageView_tintMode, -1), mDrawableTintMode);
        mHasDrawableTintMode = true;
    }

    applyImageTint();

    final int alpha = a.getInt(R.styleable.ImageView_drawableAlpha, 255);
    if (alpha != 255) {
        setImageAlpha(alpha);
    }

    mCropToPadding = a.getBoolean(
            R.styleable.ImageView_cropToPadding, false);

    a.recycle();

    //need inflate syntax/reader for matrix
}
 
源代码6 项目: android_9.0.0_r45   文件: AbsSeekBar.java
public AbsSeekBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
    super(context, attrs, defStyleAttr, defStyleRes);

    final TypedArray a = context.obtainStyledAttributes(
            attrs, R.styleable.SeekBar, defStyleAttr, defStyleRes);

    final Drawable thumb = a.getDrawable(R.styleable.SeekBar_thumb);
    setThumb(thumb);

    if (a.hasValue(R.styleable.SeekBar_thumbTintMode)) {
        mThumbTintMode = Drawable.parseTintMode(a.getInt(
                R.styleable.SeekBar_thumbTintMode, -1), mThumbTintMode);
        mHasThumbTintMode = true;
    }

    if (a.hasValue(R.styleable.SeekBar_thumbTint)) {
        mThumbTintList = a.getColorStateList(R.styleable.SeekBar_thumbTint);
        mHasThumbTint = true;
    }

    final Drawable tickMark = a.getDrawable(R.styleable.SeekBar_tickMark);
    setTickMark(tickMark);

    if (a.hasValue(R.styleable.SeekBar_tickMarkTintMode)) {
        mTickMarkTintMode = Drawable.parseTintMode(a.getInt(
                R.styleable.SeekBar_tickMarkTintMode, -1), mTickMarkTintMode);
        mHasTickMarkTintMode = true;
    }

    if (a.hasValue(R.styleable.SeekBar_tickMarkTint)) {
        mTickMarkTintList = a.getColorStateList(R.styleable.SeekBar_tickMarkTint);
        mHasTickMarkTint = true;
    }

    mSplitTrack = a.getBoolean(R.styleable.SeekBar_splitTrack, false);

    // Guess thumb offset if thumb != null, but allow layout to override.
    final int thumbOffset = a.getDimensionPixelOffset(
            R.styleable.SeekBar_thumbOffset, getThumbOffset());
    setThumbOffset(thumbOffset);

    final boolean useDisabledAlpha = a.getBoolean(R.styleable.SeekBar_useDisabledAlpha, true);
    a.recycle();

    if (useDisabledAlpha) {
        final TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.Theme, 0, 0);
        mDisabledAlpha = ta.getFloat(R.styleable.Theme_disabledAlpha, 0.5f);
        ta.recycle();
    } else {
        mDisabledAlpha = 1.0f;
    }

    applyThumbTint();
    applyTickMarkTint();

    mScaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
}