首先创建个自己喜欢的布局
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/leftButton"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp" />
<TextView
android:id="@+id/titleText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:gravity="center" />
<Button
android:id="@+id/rightButton"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp" />
</RelativeLayout>
2丶values创建attrs.xml文件
<resources>
<declare-styleable name="TopBar">
<attr name="leftBackground" format="reference" />
<attr name="rightBackground" format="reference" />
<attr name="titleText" format="string" />
<attr name="titleTextSize" format="dimension" />
<attr name="titleTextColor" format="color" />
</declare-styleable>
</resources>
3丶自己创建的一个自定义view类
package com.bwei.xzh;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class TopBar extends RelativeLayout {
private Button leftButton, rightButton;
private TextView titleTextView;
private TypedArray typedArray;
OnLeftAndRightClickListener listener;
public TopBar(Context context) {
super(context);
}
//设置监听器
public void setOnLeftAndRightClickListener(OnLeftAndRightClickListener listener) {
this.listener = listener;
}
//按钮点击接口
public interface OnLeftAndRightClickListener {
void OnLeftButtonClick();
void OnRightButtonClick();
}
//设置左边按钮的可见性
public void setLeftButtonVisibility(boolean flag){
if (flag)
leftButton.setVisibility(View.VISIBLE);
else
leftButton.setVisibility(View.GONE);
}
//设置右边按钮的可见性
public void setCenconTextViewVisibility(boolean flag){
if (flag)
titleTextView.setVisibility(View.VISIBLE);
else
titleTextView.setVisibility(View.GONE);
}
//设置右边按钮的可见性
public void setRightButtonVisibility(boolean flag){
if (flag)
rightButton.setVisibility(View.VISIBLE);
else
rightButton.setVisibility(View.GONE);
}
public TopBar(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.layout_topbar, this);
leftButton = (Button) findViewById(R.id.leftButton);
rightButton = (Button) findViewById(R.id.rightButton);
titleTextView = (TextView) findViewById(R.id.titleText);
leftButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.OnLeftButtonClick();//点击回调
}
}
});
rightButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (listener != null) {
listener.OnRightButtonClick();//点击回调
}
}
});
//获得自定义属性并赋值
typedArray = context.obtainStyledAttributes(attrs, R.styleable.TopBar);
int leftBtnBackground = typedArray.getResourceId(R.styleable.TopBar_leftBackground, 0);
int rightBtnBackground = typedArray.getResourceId(R.styleable.TopBar_rightBackground, 0);
String titleText = typedArray.getString(R.styleable.TopBar_titleText);
float titleTextSize = typedArray.getDimension(R.styleable.TopBar_titleTextSize, 0);
int titleTextColor = typedArray.getColor(R.styleable.TopBar_titleTextColor, 0x38ad5a);
//释放资源
typedArray.recycle();
leftButton.setBackgroundResource(leftBtnBackground);
rightButton.setBackgroundResource(rightBtnBackground);
titleTextView.setText(titleText);
titleTextView.setTextSize(titleTextSize);
titleTextView.setTextColor(titleTextColor);
}
public TopBar(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public TopBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
}
4丶需要的地方调用类
<com.bwei.xzh.TopBar
android:id="@+id/topbarr"
android:background="@color/colorAccent"
app:leftBackground="@drawable/but_b"
app:rightBackground="@drawable/but_a"
app:titleText="最后的爱"
app:titleTextColor="#FFF"
app:titleTextSize="13sp"
android:layout_width="wrap_content"
android:layout_height="60dp"></com.bwei.xzh.TopBar>