package com.barcicki.trio.views; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.widget.ImageView; import com.barcicki.trio.R; import com.barcicki.trio.views.MenuDescription.MenuDescriptionType; public class MenuDescriptionButton extends ImageView { private static final int[] STATE_ACTIVE = {R.attr.state_active}; private boolean mIsActive = false; private MenuDescriptionType mType = null; public MenuDescriptionButton(Context context, AttributeSet attrs) { super(context, attrs); TypedArray attrArray = context.obtainStyledAttributes(attrs, R.styleable.MenuDescription); final int count = attrArray.getIndexCount(); for (int i = 0; i < count; ++i) { int attr = attrArray.getIndex(i); if (attr == R.styleable.MenuDescription_type) { mType = MenuDescriptionType.valueOf(attrArray.getString(attr)); } } attrArray.recycle(); } public void setActive(boolean isActive) { mIsActive = isActive; refreshDrawableState(); } public boolean isActive() { return mIsActive; } public MenuDescriptionType getType() { return mType; } @Override public int[] onCreateDrawableState(int extraSpace) { final int[] drawableState = super.onCreateDrawableState(extraSpace + 1); if (isActive()) { mergeDrawableStates(drawableState, STATE_ACTIVE); } return drawableState; } }