package com.tencent.hq.qq.widget;
import com.tencent.hq.qq.R;
import com.tencent.hq.qq.util.PixelUtil;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
/** �Զ���ͷ������
* @ClassName: HeaderLayout
* @Description: TODO
* @author smile
* @date 2014-5-19 ����2:30:30
*/
public class HeaderLayout extends LinearLayout {
private LayoutInflater mInflater;
private View mHeader;
private LinearLayout mLayoutLeftContainer;
private LinearLayout mLayoutRightContainer;
private TextView mHtvSubTitle;
private LinearLayout mLayoutRightImageButtonLayout;
private Button mRightImageButton;
private onRightImageButtonClickListener mRightImageButtonClickListener;
private LinearLayout mLayoutLeftImageButtonLayout;
private ImageButton mLeftImageButton;
private onLeftImageButtonClickListener mLeftImageButtonClickListener;
public enum HeaderStyle {// ͷ��������ʽ
DEFAULT_TITLE, TITLE_LIFT_IMAGEBUTTON, TITLE_RIGHT_IMAGEBUTTON, TITLE_DOUBLE_IMAGEBUTTON;
}
public HeaderLayout(Context context) {
super(context);
init(context);
}
public HeaderLayout(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public void init(Context context) {
mInflater = LayoutInflater.from(context);
mHeader = mInflater.inflate(R.layout.common_header, null);
addView(mHeader);
initViews();
}
public void initViews() {
mLayoutLeftContainer = (LinearLayout) findViewByHeaderId(R.id.header_layout_leftview_container);
// mLayoutMiddleContainer = (LinearLayout)
// findViewByHeaderId(R.id.header_layout_middleview_container);�м䲿�����������������ťʱ�ɴ�
mLayoutRightContainer = (LinearLayout) findViewByHeaderId(R.id.header_layout_rightview_container);
mHtvSubTitle = (TextView) findViewByHeaderId(R.id.header_htv_subtitle);
}
public View findViewByHeaderId(int id) {
return mHeader.findViewById(id);
}
public void init(HeaderStyle hStyle) {
switch (hStyle) {
case DEFAULT_TITLE:
defaultTitle();
break;
case TITLE_LIFT_IMAGEBUTTON:
defaultTitle();
titleLeftImageButton();
break;
case TITLE_RIGHT_IMAGEBUTTON:
defaultTitle();
titleRightImageButton();
break;
case TITLE_DOUBLE_IMAGEBUTTON:
defaultTitle();
titleLeftImageButton();
titleRightImageButton();
break;
}
}
// Ĭ�����ֱ���
private void defaultTitle() {
mLayoutLeftContainer.removeAllViews();
mLayoutRightContainer.removeAllViews();
}
// ����Զ��尴ť
private void titleLeftImageButton() {
View mleftImageButtonView = mInflater.inflate(
R.layout.common_header_button, null);
mLayoutLeftContainer.addView(mleftImageButtonView);
mLayoutLeftImageButtonLayout = (LinearLayout) mleftImageButtonView
.findViewById(R.id.header_layout_imagebuttonlayout);
mLeftImageButton = (ImageButton) mleftImageButtonView
.findViewById(R.id.header_ib_imagebutton);
mLayoutLeftImageButtonLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (mLeftImageButtonClickListener != null) {
mLeftImageButtonClickListener.onClick();
}
}
});
}
// �Ҳ��Զ��尴ť
private void titleRightImageButton() {
View mRightImageButtonView = mInflater.inflate(
R.layout.common_header_rightbutton, null);
mLayoutRightContainer.addView(mRightImageButtonView);
mLayoutRightImageButtonLayout = (LinearLayout) mRightImageButtonView
.findViewById(R.id.header_layout_imagebuttonlayout);
mRightImageButton = (Button) mRightImageButtonView
.findViewById(R.id.header_ib_imagebutton);
mLayoutRightImageButtonLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (mRightImageButtonClickListener != null) {
mRightImageButtonClickListener.onClick();
}
}
});
}
/** ��ȡ�ұ߰�ť
* @Title: getRightImageButton
* @Description: TODO
* @param @return
* @return Button
* @throws
*/
public Button getRightImageButton(){
if(mRightImageButton!=null){
return mRightImageButton;
}
return null;
}
public void setDefaultTitle(CharSequence title) {
if (title != null) {
mHtvSubTitle.setText(title);
} else {
mHtvSubTitle.setVisibility(View.GONE);
}
}
public void setTitleAndRightButton(CharSequence title, int backid,String text,
onRightImageButtonClickListener onRightImageButtonClickListener) {
setDefaultTitle(title);
mLayoutRightContainer.setVisibility(View.VISIBLE);
if (mRightImageButton != null && backid > 0) {
mRightImageButton.setWidth(PixelUtil.dp2px(45));
mRightImageButton.setHeight(PixelUtil.dp2px(40));
mRightImageButton.setBackgroundResource(backid);
mRightImageButton.setText(text);
setOnRightImageButtonClickListener(onRightImageButtonClickListener);
}
}
public void setTitleAndRightImageButton(CharSequence title, int backid,
onRightImageButtonClickListener onRightImageButtonClickListener) {
setDefaultTitle(title);
mLayoutRightContainer.setVisibility(View.VISIBLE);
if (mRightImageButton != null && backid > 0) {
mRightImageButton.setWidth(PixelUtil.dp2px(30));
mRightImageButton.setHeight(PixelUtil.dp2px(30));
mRightImageButton.setTextColor(getResources().getColor(R.color.transparent));
mRightImageButton.setBackgroundResource(backid);
setOnRightImageButtonClickListener(onRightImageButtonClickListener);
}
}
public void setTitleAndLeftImageButton(CharSequence title, int id,
onLeftImageButtonClickListener listener) {
setDefaultTitle(title);
if (mLeftImageButton != null && id > 0) {
mLeftImageButton.setImageResource(id);
setOnLeftImageButtonClickListener(listener);
}
mLayoutRightContainer.setVisibility(View.INVISIBLE);
}
public void setOnRightImageButtonClickListener(
onRightImageButtonClickListener listener) {
mRightImageButtonClickListener = listener;
}
public interface onRightImageButtonClickListener {
void onClick();
}
public void setOnLeftImageButtonClickListener(
onLeftImageButtonClickListener listener) {
mLeftImageButtonClickListener = listener;
}
public interface onLeftImageButtonClickListener {
void onClick();
}
}