activity包
自定义的标题栏
左侧 右侧 中间按钮的运用
setButtonLeft("返回");
setButtonRight("测试付款");
setTitle(R.drawable.title_calc);
package com.gas.Securitycheck.activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import com.gas.Securitycheck.R;
import com.gas.Securitycheck.utils.DensityUtil;
import com.gas.Securitycheck.utils.PublicUtil;
public abstract class TitleBarActivity extends BaseActivity{
private LinearLayout mLinearTitle;
private LinearLayout mLinearTitleContent;
private LinearLayout mLinearDivider;
private Button mButtonLeft;
private ImageView mImgeTitle;
public Button mButtonRight;
private LinearLayout mMainView;
private FrameLayout mContentView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ViewUtils.inject(this);
// initView();
// setListeners();
// initDatas();
}
// abstract void setListeners();
//
// abstract void initDatas();
void createView()
{
System.out.println( " -----> initView");
mMainView = new LinearLayout(this);
mMainView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT) );
mMainView.setOrientation(LinearLayout.VERTICAL);
initTitleView();
mMainView.addView(mLinearTitle);
mContentView = (FrameLayout) getWindow().getDecorView().findViewById(android.R.id.content);
View v = null;
if(mContentView.getChildCount()>0)
{
v = mContentView.getChildAt(0);
// 缓存的rootView需要判断是否已经被加过parent,
// 如果有parent需要从parent删除,要不然会发生这个rootview已经有parent的错误。
ViewGroup parent = (ViewGroup) v.getParent();
if (parent != null)
{
parent.removeView(v);
}
mMainView.addView(v);
}
setContentView(mMainView, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
}
/**
* 设置title
*/
public void setTitle(int resid)
{
mImgeTitle.setImageResource(resid);
}
/**
* 设置左侧按钮
* @param content
* @param resid
* @param listener
*/
public void setButtonLeft(String content,int resid,OnClickListener listener)
{
mButtonLeft.setText(content);
mButtonLeft.setBackgroundResource(resid);
mButtonLeft.setOnClickListener(listener);
}
/**
* 设置左侧按钮
* @param content
* @param
*/
public void setButtonLeft(String content)
{
mButtonLeft.setText(content);
}
/**
* 设置右侧按钮
* @param content
* @param resid
*/
public void setButtonRight(String content,int resid)
{
mButtonRight.setText(content);
mButtonRight.setBackgroundResource(resid);
mButtonRight.setVisibility(View.VISIBLE);
}
/**
* 设置右侧按钮
* @param content
* @param
*/
public void setButtonRight(String content)
{
mButtonRight.setText(content);
mButtonRight.setVisibility(View.VISIBLE);
}
void initTitleView()
{
/* title */
mLinearTitle = new LinearLayout(this);
LayoutParams mTitleLayoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, DensityUtil.dip2px(this, 49));
mLinearTitle.setLayoutParams(mTitleLayoutParams);
mLinearTitle.setOrientation(LinearLayout.VERTICAL);
/* start title divider*/
mLinearDivider = new LinearLayout(this);
LayoutParams mTitleDividerParams = new LayoutParams(LayoutParams.MATCH_PARENT,DensityUtil.dip2px(this, 1));
mLinearDivider.setLayoutParams(mTitleDividerParams);
mLinearDivider.setBackgroundColor(Color.LTGRAY);
/* end title divider*/
/* start title content*/
mLinearTitleContent = new LinearLayout(this);
LayoutParams mTitleContentLayoutParams = new LayoutParams(LayoutParams.MATCH_PARENT,DensityUtil.dip2px(this, 48));
mTitleContentLayoutParams.gravity = Gravity.CLIP_VERTICAL;
mLinearTitleContent.setOrientation(LinearLayout.HORIZONTAL);
mLinearTitleContent.setLayoutParams(mTitleContentLayoutParams);
mLinearTitleContent.setBackgroundColor(Color.DKGRAY);
mLinearTitleContent.setGravity(Gravity.CENTER_VERTICAL);
LayoutParams buttonParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
mButtonLeft = new Button(this);
mButtonLeft.setLayoutParams(buttonParams);
mButtonLeft.setText("左侧按钮");
mButtonLeft.setTextColor(PublicUtil.getResColor(R.color.app_color));
mButtonLeft.setGravity(Gravity.CENTER_VERTICAL);
mButtonLeft.setBackgroundResource(R.drawable.back_selector);
mButtonLeft.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
LeftButtonClicked();
}
});
mImgeTitle = new ImageView(this);
LayoutParams params = new LayoutParams(0, LayoutParams.MATCH_PARENT,1);
params.gravity = Gravity.CENTER;
mImgeTitle.setLayoutParams(params);
mButtonRight = new Button(this);
mButtonRight.setLayoutParams(buttonParams);
mButtonRight.setText("右侧按钮");
mButtonRight.setTextColor(PublicUtil.getResColor(R.color.app_color));
mButtonRight.setGravity(Gravity.CENTER_VERTICAL);
mButtonRight.setVisibility(View.INVISIBLE);
mButtonRight.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
RightButtonClicked();
}
});
mLinearTitleContent.addView(mButtonLeft);
mLinearTitleContent.addView(mImgeTitle);
mLinearTitleContent.addView(mButtonRight);
mLinearTitleContent.setBackgroundColor(Color.WHITE);
/* end title content*/
mLinearTitle.addView(mLinearTitleContent);
mLinearTitle.addView(mLinearDivider);
}
/**
* 左侧按钮事件
*/
abstract void RightButtonClicked();
/**
* 右侧按钮事件
*/
abstract void LeftButtonClicked();
}