DrpTitleBar.java 5.79 KB
package com.fish.drp.div;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.util.AttributeSet;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.CheckBox;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.drp.R;


/**
 * titlebar
 * @author Wang
 */
public class DrpTitleBar extends RelativeLayout {
	
	private TextView mTvTitle,mRightTv,mLeftTv;
	
	private ImageButton mRightButton;
	
	private LinearLayout mLeftLayout;
	
	private RelativeLayout mRootLayout;
	
	private CheckBox mRightSwitch;
	private ImageView leftGoBack;
	private ImageView leftClose;
	
	
	public DrpTitleBar(Context context, AttributeSet attrs) {
		super(context, attrs);
		View.inflate(context, R.layout.layout_titlebar, this);
		mTvTitle = (TextView) findViewById(R.id.tv_fctitlebar_title);
		mRightButton = (ImageButton) findViewById(R.id.ib_fctitlebar_right);
		mLeftLayout = (LinearLayout) findViewById(R.id.ll_fctitlebar_left);
		leftGoBack = (ImageView) findViewById(R.id.titlebar_left_goBack);
		leftClose = (ImageView) findViewById(R.id.titlebar_left_close);
		mRootLayout = (RelativeLayout) findViewById(R.id.rl_titlebar_root);
		mRightTv = (TextView)findViewById(R.id.tv_fctitlebar_right);
		mLeftTv= (TextView) findViewById(R.id.tv_fctitlebar_left);
		mRightSwitch = (CheckBox)findViewById(R.id.ib_fctitlebar_switch);
	}
	
	/**
	 * 设置左边返回是否可见
	 * @param visibility
	 */
	public void setLeftSideVisible(int visibility) {
		leftGoBack.setVisibility(visibility);
	}

	/**
	 * 设置左边返回是否可见
	 * @param visibility
	 */
	public void setLeftCloseVisible(int visibility) {
		leftClose.setVisibility(visibility);
	}

	/**
	 * 设置左边文本部分是否可见
	 * @param visibility
	 */
	public void setLeftTextVisible(int visibility) {
		mLeftTv.setVisibility(visibility);
	}

	/**
	 * 设置左边文本部分内容
	 * @param text
	 */
	public void setLeftText(String text) {
		mLeftTv.setText(text);
	}

	/**
	 * 设置左边文本部分内容点击Finish
	 * @param
	 */
	public void setLeftTextFinish(final Activity aty) {
		mLeftTv.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				aty.finish();
			}
		});
	}
	/**
	 * 隐藏左边的返回
	 */
	public void hideLeftSide() {
		leftGoBack.setVisibility(View.GONE);
	}

	/**
	 * 设置左边close 方法
	 * @param listener
	 */
	public void setLeftCloseListenter(OnClickListener listener) {
		leftClose.setVisibility(View.VISIBLE);
		leftClose.setOnClickListener(listener);
	}
	/**
	 * 设置标题
	 * @param text
	 * @return
	 */
	public DrpTitleBar setTitle(String text) {
		mTvTitle.setText(text);
		return this;
	}
	
	/**
	 * 设置titlebar的背景色
	 * @param color
	 */
	public void setTitleBarBgColor(int color) {
		mRootLayout.setBackgroundColor(color);
	}
	
	/**
	 * 右边的图片按钮
	 * @param resId
	 * @param listener
	 * @return
	 */
	public DrpTitleBar setRightButton(int resId, OnClickListener listener) {
		mRightButton.setImageResource(resId);
		mRightButton.setBackgroundColor(Color.TRANSPARENT);
		mRightButton.setOnClickListener(listener);
		mRightButton.setVisibility(View.VISIBLE);
		return this;
	}
	
	/**
	 * 右边的文字按钮按钮
	 * @param text
	 * @param listener
	 * @return
	 */
	public DrpTitleBar setRightTextButton(String text, OnClickListener listener) {
		mRightTv.setVisibility(View.VISIBLE);
		mRightTv.setText(text);
		mRightTv.setOnClickListener(listener);
		return this;
	}

	public void setRightButtonText(String txt){
		mRightTv.setText(txt);
	}

	public DrpTitleBar setRightTextButton1(String text, OnClickListener listener) {
		mRightTv.setVisibility(View.VISIBLE);
		mRightTv.setText(text);
		mRightTv.setTextColor(Color.BLACK);
		mRightTv.setOnClickListener(listener);
		return this;
	}
	
	/**
	 * 右边的switch按钮
	 * @param listener
	 * @return
	 */
	public DrpTitleBar setRightSwitch(OnCheckedChangeListener listener) {

		mRightSwitch.setOnCheckedChangeListener(listener);
		mRightSwitch.setVisibility(View.GONE);
		return this;
	}
	
	public boolean getRightSwitchChecked(){
		return mRightSwitch.isChecked();
	}
	
	public void hideRightTextButton() {
		mRightTv.setVisibility(View.GONE);
	}
	
	
	/**
	 * 设置左边返回点击finish的activity
	 * @param aty
	 * @return
	 */
	public DrpTitleBar setLeftClickFinish(final Activity aty,OnClickListener listener) {
		leftGoBack.setOnClickListener(listener);
		return this;
	}
	
	/**
	 * 设置左边返回点击finish的activity
	 * @param aty
	 * @return
	 */
	public DrpTitleBar setLeftClickFinish(final Activity aty) {
		leftGoBack.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				aty.finish();
			}
		});
		return this;
	}
//	public DrpTitleBar setkeboradClickFinish(final Activity aty , final View flag) {
//		mLeftLayout.setOnClickListener(new OnClickListener() {
//			public void onClick(View v) {
//
//					InputMethodManager imm = (InputMethodManager) aty.getSystemService(Activity.INPUT_METHOD_SERVICE);
//				if(imm.isActive()){
//					imm.hideSoftInputFromWindow(flag.getWindowToken(), 0);
//				}
//
//
//
//				aty.finish();
//			}
//		});
//		return this;
//	}
	public DrpTitleBar setClickFinish(final Activity aty, final Intent intent){
		leftGoBack.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {

				aty.setResult(1, intent);
				aty.finish();
			}
		});
		return this;

	}
	/**
	 * 设置标题
	 * @param text
	 * @return
	 */
	public DrpTitleBar setTitle(String text,int color) {
		mTvTitle.setText(text);
		mTvTitle.setTextColor(getResources().getColor(color));
		return this;
	}
}