/** * */ package com.dayu.rechargeqh.view; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.dayu.rechargeqh.R; /*** * 标题视图 * * @author shisl * @time 2015-4-29 */ public class TitleBar extends LinearLayout { private static final String TAG = "CNavigationBar"; public static final int LEFT = 0; public static final int CENTER = 1; public static final int RIGHT = 2; public static final int IMAGE = 3; public static final int TEXT = 4; public static final int ClickType_LEFT_TEXT = 1; public static final int ClickType_LEFT_IMAGE = 2; public static final int ClickType_CENTER_TEXT = 3; public static final int ClickType_CENTER_IMAGE = 4; public static final int ClickType_RIGHT_TEXT = 5; public static final int ClickType_RIGHT_IMAGE = 6; private TextView tvLeft; private ImageView ivLeft; private LinearLayout llLeft; private ImageButton ibCenter; private TextView btnCenter; private TextView tvRight; private ImageView ivRight; private LinearLayout llRight; public TitleBar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs); initView(context); } /** * 初始化我们自定义的组合控件 */ private void initView(Context context) { // 转化布局文件————>View对象,这个view对象直接挂载在自己(组合控件)身上 View.inflate(context, R.layout.custom_titlebar, this); // this代表挂载到自己身上 tvLeft = (TextView) this.findViewById(R.id.tv_titlebar_left); btnCenter = (TextView) this.findViewById(R.id.btn_titlebar_center); tvRight = (TextView) this.findViewById(R.id.tv_titlebar_right); ivLeft = (ImageView) this.findViewById(R.id.iv_titlebar_left); ibCenter = (ImageButton) this.findViewById(R.id.ib_titlebar_center); ivRight = (ImageView) this.findViewById(R.id.iv_titlebar_right); llLeft = (LinearLayout) this.findViewById(R.id.ll_left); llRight = (LinearLayout) this.findViewById(R.id.ll_right); } public TitleBar(Context context, AttributeSet attrs) { super(context, attrs); initView(context); try { /** * 跟values/attrs.xml里面定义的属性绑定 */ // 从attrs.xml获取自定义的控件属性 TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TitleBar); // //从attrs.xml获取自定义的value属性(控件属性名称+“_” + 自定义的属性名称) String leftText = a.getString(R.styleable.TitleBar_leftText); int leftImage = a.getResourceId(R.styleable.TitleBar_leftImage, 0); String centerText = a.getString(R.styleable.TitleBar_centerText); int centerImage = a.getResourceId(R.styleable.TitleBar_centerImage, 0); String rightText = a.getString(R.styleable.TitleBar_rightText); int rightImage = a.getResourceId(R.styleable.TitleBar_rightImage, 0); a.recycle(); setLeftText(leftText); setRightText(rightText); setCenterText(centerText); setLeftImage(leftImage); setRightImage(rightImage); setCenterImage(centerImage); } catch (Exception e) { e.printStackTrace(); } } @Deprecated public void setOnItemclickListner(int type, int aligh, View.OnClickListener listner) { if (listner == null) { return; } if (type == TEXT) { switch (aligh) { case LEFT: setOnItemclickListner(ClickType_LEFT_TEXT, listner); break; case CENTER: setOnItemclickListner(ClickType_CENTER_TEXT, listner); break; case RIGHT: setOnItemclickListner(ClickType_RIGHT_TEXT, listner); break; default: break; } } else if (type == IMAGE) { switch (aligh) { case LEFT: setOnItemclickListner(ClickType_LEFT_IMAGE, listner); break; case CENTER: setOnItemclickListner(ClickType_CENTER_IMAGE, listner); break; case RIGHT: setOnItemclickListner(ClickType_RIGHT_IMAGE, listner); break; default: break; } } } public void setOnItemclickListner(int clickType, View.OnClickListener listner) { try { switch (clickType) { case ClickType_LEFT_TEXT: if (tvLeft.getVisibility() == View.VISIBLE) { llLeft.setOnClickListener(listner); } break; case ClickType_LEFT_IMAGE: if (ivLeft.getVisibility() == View.VISIBLE) { llLeft.setOnClickListener(listner); } break; case ClickType_CENTER_TEXT: if (btnCenter.getVisibility() == View.VISIBLE) { btnCenter.setOnClickListener(listner); } break; case ClickType_CENTER_IMAGE: if (ibCenter.getVisibility() == View.VISIBLE) { ibCenter.setOnClickListener(listner); } break; case ClickType_RIGHT_TEXT: if (tvRight.getVisibility() == View.VISIBLE) { llRight.setOnClickListener(listner); } else { llRight.setOnClickListener(null); } break; case ClickType_RIGHT_IMAGE: if (ivRight.getVisibility() == View.VISIBLE) { llRight.setOnClickListener(listner); } break; default: break; } } catch (Exception e) { e.printStackTrace(); } } public void setLeftImage(int leftImage) { if (leftImage == 0) { ivLeft.setVisibility(View.GONE); return; } ivLeft.setVisibility(View.VISIBLE); ivLeft.setImageResource(leftImage); } public void setRightImage(int rightImage) { if (rightImage == 0) { ivRight.setVisibility(View.GONE); return; } ivRight.setVisibility(View.VISIBLE); ivRight.setImageResource(rightImage); } private void setCenterImage(int leftImage) { if (leftImage == 0) { return; } ivLeft.setBackgroundResource(leftImage); } public void setLeftText(String leftText) { if (leftText == null) { return; } tvLeft.setVisibility(View.VISIBLE); Log.i(TAG, "leftText--->" + leftText); tvLeft.setText(leftText); } public void setRightText(String rightText) { if (rightText == null) { return; } tvRight.setVisibility(View.VISIBLE); llRight.setVisibility(View.VISIBLE); tvRight.setText(rightText); } public void setCenterText(String centerText) { if (centerText == null) { return; } btnCenter.setVisibility(View.VISIBLE); Log.i(TAG, "centerText--->" + centerText); btnCenter.setText(centerText); } public void setRightStatus(boolean isable) { tvRight.setEnabled(isable); ivRight.setEnabled(isable); llRight.setEnabled(isable); } public void setRightIMGVisibility(int Visibility) { ivRight.setVisibility(Visibility); } public TextView getTitleTextView() { return btnCenter; } public LinearLayout getLlRight() { return llRight; } }