/* * Copyright (c) 2015 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com> * All Rights Reserved. */ package me.zhanghai.android.douya.ui; import android.annotation.TargetApi; import android.content.Context; import android.graphics.drawable.Drawable; import android.os.Build; import android.support.v7.widget.TintTypedArray; import android.util.AttributeSet; import android.view.Gravity; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import butterknife.BindView; import butterknife.ButterKnife; import me.zhanghai.android.douya.R; import me.zhanghai.android.douya.util.ViewUtils; public class CardIconButton extends LinearLayout { @BindView(R.id.cardiconbutton_image) ImageView mImage; @BindView(R.id.cardiconbutton_text) TextView mText; public CardIconButton(Context context) { super(context); init(null, 0, 0); } public CardIconButton(Context context, AttributeSet attrs) { super(context, attrs); init(attrs, 0, 0); } public CardIconButton(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(attrs, defStyleAttr, 0); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public CardIconButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(attrs, defStyleAttr, defStyleRes); } @SuppressWarnings("RestrictedApi") private void init(AttributeSet attrs, int defStyleAttr, int defStyleRes) { setClickable(true); setFocusable(true); setGravity(Gravity.CENTER_VERTICAL); setOrientation(HORIZONTAL); ViewUtils.inflateInto(R.layout.card_icon_button, this); ButterKnife.bind(this); TintTypedArray a = TintTypedArray.obtainStyledAttributes(getContext(), attrs, R.styleable.CardIconButton, defStyleAttr, defStyleRes); Drawable src = a.getDrawable(R.styleable.CardIconButton_android_src); if (src != null) { mImage.setImageDrawable(src); } CharSequence text = a.getText(R.styleable.CardIconButton_android_text); setText(text); a.recycle(); } public ImageView getImageView() { return mImage; } public TextView getTextView() { return mText; } public void setIcon(Drawable icon) { mImage.setImageDrawable(icon); } public void setText(CharSequence text) { mText.setText(text); } }