package com.pandaq.pandaeye.widget; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.graphics.Color; import android.os.Build; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.pandaq.pandaeye.R; import butterknife.BindView; import butterknife.ButterKnife; /** * Created by PandaQ on 2016/12/21. * email : 767807368@qq.com */ public class NavItem extends RelativeLayout { @BindView(R.id.iv_start_icon) ImageView mIvStartIcon; @BindView(R.id.tv_action_title) TextView mTvActionTitle; @BindView(R.id.tv_action_state) TextView mTvActionState; public NavItem(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs); } public NavItem(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs); } private void init(Context context, AttributeSet attrs) { View view = inflate(context, R.layout.nav_item_layout, this); ButterKnife.bind(view); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.NavItem); String action = ta.getString(R.styleable.NavItem_action); String actionState = ta.getString(R.styleable.NavItem_actionState); if (actionState != null) { mTvActionState.setText(actionState); } mTvActionTitle.setText(action != null ? action : ""); int startInco = ta.getResourceId(R.styleable.NavItem_startIcon, 0); if (startInco != 0) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mIvStartIcon.setImageDrawable(context.getResources().getDrawable(startInco, context.getTheme())); } else { mIvStartIcon.setImageDrawable(context.getResources().getDrawable(startInco)); } } int color = ta.getColor(R.styleable.NavItem_textColor, Color.GRAY); if (color != Color.GRAY) { mTvActionTitle.setTextColor(color); mTvActionState.setTextColor(color); } int tint = ta.getColor(R.styleable.NavItem_tint, Color.TRANSPARENT); if (tint != Color.TRANSPARENT) { mIvStartIcon.setImageTintList(ColorStateList.valueOf(tint)); } ta.recycle(); } public void setTvActionState(String state) { mTvActionState.setText(state); } public void setTvActionTitle(String state) { mTvActionTitle.setText(state); } }