package com.jacky.compatible.launcher.features.indicator; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Color; import android.graphics.Typeface; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import com.jacky.launcher.R; public class TabButton extends RelativeLayout implements View.OnFocusChangeListener, View.OnClickListener { private String mTitle; private TextView mTitleView; private Context mContext; private OnTabButtonChangeListener mOnTabButtonChangeListener; private OnTabButtonClickListener mOnTabButtonClickListener; public TabButton(Context context) { super(context); } public TabButton(Context context, AttributeSet attrs) { super(context, attrs); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.tabButton); mTitle = typedArray.getString(R.styleable.tabButton_buttonTitle); typedArray.recycle(); mContext = context; initUI(); } public interface OnTabButtonChangeListener { void onTabButtonChange(View v); } public interface OnTabButtonClickListener { void onTabButtonClick(View v); } public void setOnTabButtonChangeListener(OnTabButtonChangeListener onTabButtonChangeListener) { mOnTabButtonChangeListener = onTabButtonChangeListener; } public void setOnTabButtonClickListener(OnTabButtonClickListener OnTabButtonClickListener) { mOnTabButtonClickListener = OnTabButtonClickListener; } private void initUI() { View view = LayoutInflater.from(mContext).inflate(R.layout.view_indicator_item, this); setOnFocusChangeListener(this); setOnClickListener(this); mTitleView = (TextView) view.findViewById(R.id.tab_text); mTitleView.setText(mTitle); } public void setSelectedTextColor() { mTitleView.setTextColor(getResources().getColor(R.color.font_blue)); mTitleView.setTypeface(null, Typeface.BOLD); } public void setNormalTextColor() { mTitleView.setTextColor(getResources().getColor(R.color.font_dark)); mTitleView.setTypeface(null, Typeface.NORMAL); } @Override public void onFocusChange(View v, boolean hasFocus) { if (v == this) { if (hasFocus) { mOnTabButtonChangeListener.onTabButtonChange(v); mTitleView.setTextColor(Color.WHITE); mTitleView.setTypeface(null, Typeface.BOLD); } else { mTitleView.setTextColor(getResources().getColor(R.color.font_dark)); mTitleView.setTypeface(null, Typeface.NORMAL); } } } @Override public void onClick(View v) { mOnTabButtonClickListener.onTabButtonClick(v); } }