Example usage for android.graphics.drawable Drawable setState

List of usage examples for android.graphics.drawable Drawable setState

Introduction

In this page you can find the example usage for android.graphics.drawable Drawable setState.

Prototype

public boolean setState(@NonNull final int[] stateSet) 

Source Link

Document

Specify a set of states for the drawable.

Usage

From source file:org.getlantern.firetweet.view.MessageCardItemFrameLayout.java

@Override
protected void drawableStateChanged() {
    super.drawableStateChanged();
    final Drawable d = getBackground();
    if (d != null && d.isStateful()) {
        final int[] state = getDrawableState();
        d.setState(state);
        final Drawable current = d.getCurrent();
        if (current instanceof TransitionDrawable) {
            final TransitionDrawable td = (TransitionDrawable) current;
            if (ArrayUtils.contains(state, android.R.attr.state_pressed)) {
                td.startTransition(ViewConfiguration.getLongPressTimeout());
            } else {
                td.resetTransition();//from   ww w  .  ja va 2 s.  c o  m
            }
        }
    }
}

From source file:android.support.v7.widget.AppCompatSeekBarHelper.java

void drawableStateChanged() {
    final Drawable tickMark = mTickMark;
    if (tickMark != null && tickMark.isStateful() && tickMark.setState(mView.getDrawableState())) {
        mView.invalidateDrawable(tickMark);
    }// w  w  w .java2s.c o m
}

From source file:com.shizhefei.view.largeimage.UpdateImageView.java

@Override
protected void drawableStateChanged() {
    super.drawableStateChanged();
    Drawable d = mDrawable;
    if (d != null && d.isStateful()) {
        d.setState(getDrawableState());
    }// w  ww. j  a  v a2s  .c om
}

From source file:android.support.v7.internal.widget.ListViewCompat.java

protected void updateSelectorStateCompat() {
    Drawable selector = getSelector();
    if (selector != null && shouldShowSelectorCompat()) {
        selector.setState(getDrawableState());
    }/*from  ww w .  j av a 2s .  c  o  m*/
}

From source file:android.support.v7.widget.AppCompatSeekBarHelper.java

void setTickMark(@Nullable Drawable tickMark) {
    if (mTickMark != null) {
        mTickMark.setCallback(null);// w  w w . j a va  2s.c  om
    }

    mTickMark = tickMark;

    if (tickMark != null) {
        tickMark.setCallback(mView);
        DrawableCompat.setLayoutDirection(tickMark, ViewCompat.getLayoutDirection(mView));
        if (tickMark.isStateful()) {
            tickMark.setState(mView.getDrawableState());
        }
        applyTickMarkTint();
    }

    mView.invalidate();
}

From source file:com.facebook.litho.reference.DrawableResourcesCache.java

public void release(Drawable drawable, int resId) {
    SimplePoolWithCount<Drawable> drawablesPool = mDrawableCache.get(resId);
    if (drawablesPool == null) {
        drawablesPool = new SimplePoolWithCount<>(DRAWABLES_POOL_MAX_ITEMS);
        mDrawableCache.put(resId, drawablesPool);
    }//from w  w  w . j av  a2s  .  com

    // Reset a stateful drawable, and its animations, before being released.
    if (drawable.isStateful()) {
        drawable.setState(StateSet.WILD_CARD);

        if (SDK_INT >= HONEYCOMB) {
            drawable.jumpToCurrentState();
        }
    }

    drawablesPool.release(drawable);
}

From source file:com.pax.view.keyboard.CustomKeyboardView.java

@Override
public void onDraw(Canvas canvas) {
    List<Keyboard.Key> keys = getKeyboard().getKeys();
    for (Keyboard.Key key : keys) {
        canvas.save();/*w w w  .j  a v a  2  s  .c om*/

        int offsetY = 0;
        if (key.y == 0) {
            offsetY = 1;
        }
        int initDrawY = key.y + offsetY;
        Rect rect = new Rect(key.x, initDrawY, key.x + key.width, key.y + key.height);
        canvas.clipRect(rect);

        Drawable drawable = null;
        if (null != key.codes && key.codes.length != 0) {
            int primaryCode = key.codes[0];

            if (primaryCode < 0) {
                drawable = mOpKeyBgDrawable;
            } else {
                drawable = mKeyBgDrawable;
            }
        }

        if (null != drawable && null == key.icon) {
            int[] state = key.getCurrentDrawableState();
            drawable.setState(state);
            drawable.setBounds(rect);
            drawable.draw(canvas);
        }

        paint.setAntiAlias(true);
        paint.setTextAlign(Paint.Align.CENTER);
        paint.setTextSize(50);
        paint.setColor(Color.BLACK);

        if (key.icon != null) {
            int[] state = key.getCurrentDrawableState();
            key.icon.setState(state);
            key.icon.setBounds(rect);
            key.icon.draw(canvas);
        }

        if (key.label != null) {
            canvas.drawText(key.label.toString(), key.x + (key.width / 2),
                    initDrawY + (key.height + paint.getTextSize() - paint.descent()) / 2, paint);
        }
        canvas.restore();
    }
}

From source file:com.bilibili.magicasakura.widgets.AppCompatImageHelper.java

private boolean applySupportImageTint() {
    Drawable image = ((ImageView) mView).getDrawable();
    if (image != null && mImageTintInfo != null && mImageTintInfo.mHasTintList) {
        Drawable tintDrawable = image.mutate();
        tintDrawable = DrawableCompat.wrap(tintDrawable);
        if (mImageTintInfo.mHasTintList) {
            DrawableCompat.setTintList(tintDrawable, mImageTintInfo.mTintList);
        }/*w w w.  j a  v  a  2  s .c  o  m*/
        if (mImageTintInfo.mHasTintMode) {
            DrawableCompat.setTintMode(tintDrawable, mImageTintInfo.mTintMode);
        }
        if (tintDrawable.isStateful()) {
            tintDrawable.setState(mView.getDrawableState());
        }
        setImageDrawable(tintDrawable);
        if (image == tintDrawable) {
            tintDrawable.invalidateSelf();
        }
        return true;
    }
    return false;
}

From source file:com.github.pedrovgs.nox.NoxView.java

private void setNoxItemState(int noxItemPosition, int[] stateSet) {
    boolean refreshView = false;
    if (noxItemCatalog.isDrawableReady(noxItemPosition)) {
        Drawable drawable = noxItemCatalog.getDrawable(noxItemPosition);
        drawable.setState(stateSet);
        refreshView = true;/*from  w  w w. j  a va  2 s .c om*/
    } else if (noxItemCatalog.isPlaceholderReady(noxItemPosition)) {
        Drawable drawable = noxItemCatalog.getPlaceholder(noxItemPosition);
        drawable.setState(stateSet);
        refreshView = true;
    }
    if (refreshView) {
        refreshView();
    }
}

From source file:com.shizhefei.view.largeimage.UpdateImageView.java

private void updateDrawable(Drawable d) {
    if (mDrawable != null) {
        mDrawable.setCallback(null);//from   w w  w .  j  av  a2  s.  c  om
        unscheduleDrawable(mDrawable);
    }
    mDrawable = d;
    if (d != null) {
        d.setCallback(this);
        DrawableCompat.setLayoutDirection(d, DrawableCompat.getLayoutDirection(d));
        if (d.isStateful()) {
            d.setState(getDrawableState());
        }
        d.setVisible(getVisibility() == VISIBLE, true);
        d.setLevel(mLevel);
        mDrawableWidth = d.getIntrinsicWidth();
        mDrawableHeight = d.getIntrinsicHeight();
        //            applyImageTint();
        //            applyColorMod();
        //
        //            configureBounds();
    } else {
        mDrawableWidth = mDrawableHeight = -1;
    }
}