这里说的是自定义标题栏组件,通过设置组件的部分属性,实现标题栏的不同的展示样式,先上效果图:
%20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20 %20自定义标题栏组件不同效果展示图
自定义组件步骤:
1)继承自View或容器布局
2)xml中引入自定义控件
3)代码中设置属性或实现接口
直接上代码:
TitleView.java
import%20android.content.Context;import%20android.content.res.TypedArray;import%20android.graphics.drawable.Drawable;import%20android.util.AttributeSet;import%20android.view.View;import%20android.widget.Button;import%20android.widget.RelativeLayout;import%20android.widget.TextView;import%20com.mobile.cdtx.blog.R;/**%20*%20Created%20by%20wangwentao%20on%202017/2/4.%20*自定义标题栏组件%20*%20主要实现的功能:%20*%201.标题栏中包含了左边按钮、标题、右边按钮%20*%202.可以显示左边按钮、右边按钮中的某一个或都不显示或都显示%20*%203.左边或右边可以显示图片背景或只显示文字%20*%204.左边或右边按钮可以设置边距%20*%205.默认均是居中显示%20*%206.可以指定左边或右边按钮的大小或默认包裹内容%20*%207.可以指定标题栏的背景,文字大小和颜色%20*%208.可以指定按钮中的文字的大小,颜色等%20*/public%20class%20TitleView%20extends%20RelativeLayout%20{ //标题栏上的三部分控件:左边按钮%20+%20中间标题%20+%20右边按钮 PRivate%20Button%20leftButton;//左边按钮 private%20TextView%20titleView;//中间标题 private%20Button%20rightButton;//右边按钮 //标题栏的背景色 private%20int%20titleBackgroundColor; //左边按钮的属性 private%20int%20leftTextColor;//左侧按钮的文字的颜色 private%20Drawable%20leftBackground;//左侧按钮的背景 private%20String%20leftText;//左侧按钮的文字 private%20float%20leftTextSize;//左边文字的大小 private%20int%20leftWidth;//左侧按钮的宽度 private%20int%20leftHeight;//左侧按钮的宽度 private%20int%20leftLeftMargin;//左侧按钮的左边距 private%20int%20leftTopMargin;//左侧按钮的上下边距 //中间标题的属性 private%20float%20titleTextSize;//标题的文字的大小 private%20int%20titleTextColor;//标题的文字的颜色 private%20String%20titleText;//标题的文字 //右边按钮的属性 private%20int%20rightTextColor;//右边按钮文字的颜色 private%20Drawable%20rightBackground;//右边按钮的背景 private%20String%20rightText;//右边按钮的文字 private%20float%20rightTextSize;//左边文字的大小 private%20int%20rightWidth;//右侧按钮的宽度 private%20int%20rightHeight;//右侧按钮的高度 private%20int%20rightRightMargin;//右侧按钮的边距 private%20int%20rightTopMargin;//右侧按钮的上下边距 //布局属性,用来控制组件元素在ViewGroup中的位置 private%20LayoutParams%20leftParams,%20titleParams,%20rightParams;//左边布局,中间布局,右边布局 //标题栏左边按钮和右边按钮的点击事件监听 private%20TitleViewClickListener%20mListener; public%20TitleView(Context%20context,%20AttributeSet%20attrs)%20{ super(context,%20attrs); //动态创建左边按钮,中间标题,右边按钮 leftButton%20=%20new%20Button(context); titleView%20=%20new%20TextView(context); rightButton%20=%20new%20Button(context); //将在attrs.xml中定义的declare-styleable的所有属性的值存储到TypedArray中 TypedArray%20ta%20=%20context.obtainStyledAttributes(attrs,%20R.styleable.TitleView); //标题的背景色 titleBackgroundColor%20=%20ta.getColor(R.styleable.TitleView_titleBackgroundColor,%200); setBackgroundColor(titleBackgroundColor); //左侧文字的颜色 leftTextColor%20=%20ta.getColor(R.styleable.TitleView_leftTextColor,%200); leftButton.setTextColor(leftTextColor); //左侧按钮的背景 leftBackground%20=%20ta.getDrawable(R.styleable.TitleView_leftBackground); leftButton.setBackground(leftBackground); //左侧按钮的文字 leftText%20=%20ta.getString(R.styleable.TitleView_leftText); leftButton.setText(leftText); //左侧按钮文字的大小 leftTextSize%20=%20ta.getDimension(R.styleable.TitleView_leftTextSize,%2012); leftButton.setTextSize(leftTextSize); //左侧按钮的边距 leftLeftMargin%20=%20(int)ta.getDimension(R.styleable.TitleView_leftLeftMargin,%200); leftTopMargin%20=%20(int)ta.getDimension(R.styleable.TitleView_leftTopMargin,%200); //标题文字 titleText%20=%20ta.getString(R.styleable.TitleView_title); titleView.setText(titleText); //标题文字的颜色 titleTextColor%20=%20ta.getColor(R.styleable.TitleView_titleTextColor,%200); titleView.setTextColor(titleTextColor); //标题文字的大小 titleTextSize%20=%20ta.getDimension(R.styleable.TitleView_titleTextSize,%2012); titleView.setTextSize(titleTextSize); //右侧按钮的背景 rightBackground%20=%20ta.getDrawable(R.styleable.TitleView_rightBackground); rightButton.setBackground(rightBackground); //右侧按钮的文字的颜色 rightTextColor%20=%20ta.getColor(R.styleable.TitleView_rightTextColor,%200); rightButton.setTextColor(rightTextColor); //右侧按钮的文字 rightText%20=%20ta.getString(R.styleable.TitleView_rightText); rightButton.setText(rightText); //右侧按钮的文字的大小 rightTextSize%20=%20ta.getDimension(R.styleable.TitleView_rightTextSize,%2012); rightButton.setTextSize(rightTextSize); //左侧按钮的宽度和高度 leftWidth%20=%20(int)ta.getDimension(R.styleable.TitleView_leftWidth,%200); leftHeight%20=%20(int)ta.getDimension(R.styleable.TitleView_leftHeight,%200); //右侧按钮的宽度和高度 rightWidth%20=%20(int)ta.getDimension(R.styleable.TitleView_rightWidth,%200);%20%20%20%20%20%20%20%20rightHeight%20=%20(int)ta.getDimension(R.styleable.TitleView_rightHeight,%200); //右侧按钮的边距 rightRightMargin%20=%20(int)ta.getDimension(R.styleable.TitleView_rightRightMargin,%200); rightTopMargin%20=%20(int)ta.getDimension(R.styleable.TitleView_rightTopMargin,%200); ta.recycle();//获取完TypedArray的值后,调用recyle()方法回收内存,避免重新创建的时候报错 //为左边按钮设置相应的布局元素 leftParams%20=%20new%20LayoutParams(leftWidth%20==%200%20?%20LayoutParams.WRAP_CONTENT:leftWidth,leftHeight%20==%200%20?LayoutParams.WRAP_CONTENT:leftHeight); leftParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,%20TRUE); if(leftHeight%20>%200){ leftParams.setMargins(leftLeftMargin,leftTopMargin,0,leftTopMargin); } addView(leftButton,%20leftParams);//%20添加到容器(ViewGroup)中 //为中间的标题设置相应的布局元素 titleParams%20=%20new%20LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); titleParams.addRule(RelativeLayout.CENTER_IN_PARENT,%20TRUE); addView(titleView,%20titleParams);//添加到容器(ViewGroup)中 //为右边按钮设置相应的布局元素 rightParams%20=%20new%20LayoutParams(rightWidth%20==%200%20?%20LayoutParams.WRAP_CONTENT:rightWidth,rightHeight%20==%200%20?%20LayoutParams.WRAP_CONTENT:rightHeight); rightParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT,%20TRUE); if(rightHeight%20>%200){//自定义了右边按钮的高度 rightParams.setMargins(0,rightTopMargin,rightRightMargin,rightTopMargin); } addView(rightButton,%20rightParams);//添加到容器(ViewGroup)中 //为左边按钮设置点击事件 leftButton.setOnClickListener(new%20OnClickListener()%20{ @Override public%20void%20onClick(View%20v)%20{ mListener.leftClick();//执行外部实现的接口%20 } }); //为右边按钮设置点击事件 rightButton.setOnClickListener(new%20OnClickListener()%20{ @Override public%20void%20onClick(View%20v)%20{ mListener.rightClick();//执行外部实现的接口 } }); } //外部调用此方法,设置点击事件监听 public%20void%20setOnTitleViewClickListener(TitleViewClickListener%20mListener){ this.mListener%20=%20mListener; } //外部调用接口,实现接口的具体方法 public%20interface%20TitleViewClickListener{ void%20leftClick();//左边按钮的点击事件 void%20rightClick();//右边按钮的点击事件 } /* *控件左右按钮的显示 *showStatus:0,都不显示;1,只显示左侧按钮;2,只显示右侧按钮;3,两个按钮都显示 */ public%20void%20setButtonVisible(int%20showStatus){ if(0%20==%20showStatus){//都不显示 %20%20%20%20leftButton.setVisibility(View.GONE);%20%20%20%20%20%20%20%20%20%20%20%20rightButton.setVisibility(View.GONE); }else%20if(1%20==%20showStatus){//只显示左侧按钮 %20%20%20%20leftButton.setVisibility(View.VISIBLE);%20%20%20%20%20%20%20%20%20%20%20%20rightButton.setVisibility(View.GONE); }else%20if(2%20==%20showStatus){//只显示右侧按钮 %20%20%20%20leftButton.setVisibility(View.GONE);%20%20%20%20%20%20%20%20%20%20%20%20rightButton.setVisibility(View.VISIBLE); }else%20if(3%20==%20showStatus){//两个按钮都显示 leftButton.setVisibility(View.VISIBLE);%20%20%20%20%20%20%20%20%20%20%20%20rightButton.setVisibility(View.VISIBLE); } }}分析:上面代码是自定义组件的核心代码,注释写的很详细,这里不再做过多的分析.测试代码如下:
/**%20*%20Created%20by%20wangwentao%20on%202017/2/4.%20*%20测试自定义标题栏%20*/public%20class%20TitleActivityCustom%20extends%20Activity%20{%20%20%20%20@Override%20%20%20%20protected%20void%20onCreate(Bundle%20savedInstanceState)%20{%20%20%20%20%20%20%20%20super.onCreate(savedInstanceState);%20%20%20%20%20%20%20%20this.requestWindowFeature(Window.FEATURE_NO_TITLE);%20%20%20%20%20%20%20%20getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,%20WindowManager.LayoutParams.FLAG_FULLSCREEN);%20%20%20%20%20%20%20%20setContentView(R.layout.activity_title_custom);%20%20%20%20%20%20%20%20//标题栏1%20%20%20%20%20%20%20%20TitleView%20titleView1%20=%20(TitleView)%20findViewById(R.id.id_title_view);%20%20%20%20%20%20%20%20titleView1.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题1左边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题1右边按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView1.setButtonVisible(3);%20%20%20%20%20%20%20%20//标题栏2%20%20%20%20%20%20%20%20TitleView%20titleView2%20=%20(TitleView)%20findViewById(R.id.id_title_two);%20%20%20%20%20%20%20%20titleView2.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题2左边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题2右边按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView2.setButtonVisible(3);%20%20%20%20%20%20%20%20//标题3%20%20%20%20%20%20%20%20TitleView%20titleView3%20=%20(TitleView)%20findViewById(R.id.id_title_three);%20%20%20%20%20%20%20%20titleView3.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题3左边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView3.setButtonVisible(1);%20%20%20%20%20%20%20%20//标题栏4%20%20%20%20%20%20%20%20TitleView%20titleView4%20=%20(TitleView)%20findViewById(R.id.id_title_four);%20%20%20%20%20%20%20%20titleView4.setButtonVisible(0);%20%20%20%20%20%20%20%20//标题栏5%20%20%20%20%20%20%20%20TitleView%20titleView5%20=%20(TitleView)%20findViewById(R.id.id_title_five);%20%20%20%20%20%20%20%20titleView5.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题5左边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView5.setButtonVisible(1);%20%20%20%20%20%20%20%20//标题栏6%20%20%20%20%20%20%20%20TitleView%20titleView6%20=%20(TitleView)%20findViewById(R.id.id_title_six);%20%20%20%20%20%20%20%20titleView6.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题6右边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView6.setButtonVisible(2);%20%20%20%20%20%20%20%20//标题栏7%20%20%20%20%20%20%20%20TitleView%20titleView7%20=%20(TitleView)%20findViewById(R.id.id_title_seven);%20%20%20%20%20%20%20%20titleView7.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题7左边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题7右边按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView7.setButtonVisible(3);%20%20%20%20%20%20%20%20//标题栏8%20%20%20%20%20%20%20%20TitleView%20titleView8%20=%20(TitleView)%20findViewById(R.id.id_title_eight);%20%20%20%20%20%20%20%20titleView8.setOnTitleViewClickListener(new%20%20TitleView.TitleViewClickListener()%20{%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20leftClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题8左边的按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20%20%20public%20void%20rightClick()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Toast.makeText(TitleActivityCustom.this,%20"点中了标题8右边按钮",%20Toast.LENGTH_SHORT).show();%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20});%20%20%20%20%20%20%20%20titleView8.setButtonVisible(3);%20%20%20%20}}布局文件activity_title_custom.xml<?xml%20version="1.0"%20encoding="utf-8"?><RelativeLayout%20xmlns:android="http://schemas.android.com/apk/res/android"%20%20%20%20xmlns:tools="http://schemas.android.com/tools"%20%20%20%20xmlns:app="http://schemas.android.com/apk/res-auto"%20%20%20%20android:id="@+id/activity_title_custom"%20%20%20%20android:layout_width="match_parent"%20%20%20%20android:layout_height="match_parent"%20%20%20%20tools:context="com.mobile.cdtx.blog.main.activity.TitleActivityCustom">%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_view"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#18b4ed"%20%20%20%20%20%20%20%20app:leftBackground="@drawable/button_bg"%20%20%20%20%20%20%20%20app:leftTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:leftText="左边"%20%20%20%20%20%20%20%20app:leftTextSize="7sp"%20%20%20%20%20%20%20%20app:title="标题栏1"%20%20%20%20%20%20%20%20app:titleTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20app:rightBackground="@drawable/button_bg"%20%20%20%20%20%20%20%20app:rightTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:rightText="右边"%20%20%20%20%20%20%20%20app:rightTextSize="7sp"/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_two"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_view"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20android:gravity="center_vertical"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#00ff00"%20%20%20%20%20%20%20%20app:leftBackground="@drawable/backbtn"%20%20%20%20%20%20%20%20app:leftWidth="15dp"%20%20%20%20%20%20%20%20app:leftHeight="15dp"%20%20%20%20%20%20%20%20app:leftLeftMargin="5dp"%20%20%20%20%20%20%20%20app:leftTopMargin="15dp"%20%20%20%20%20%20%20%20app:title="标题栏2"%20%20%20%20%20%20%20%20app:titleTextColor="#FF0000"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20app:rightBackground="@drawable/actions_about"%20%20%20%20%20%20%20%20app:rightWidth="15dp"%20%20%20%20%20%20%20%20app:rightHeight="15dp"%20%20%20%20%20%20%20%20app:rightRightMargin="5dp"%20%20%20%20%20%20%20%20app:rightTopMargin="15dp"%20%20%20%20%20%20%20/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_three"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_two"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#18b4ed"%20%20%20%20%20%20%20%20app:leftBackground="@drawable/button_bg"%20%20%20%20%20%20%20%20app:leftTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:leftText="返回"%20%20%20%20%20%20%20%20app:leftTextSize="7sp"%20%20%20%20%20%20%20%20app:title="标题栏3"%20%20%20%20%20%20%20%20app:titleTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_four"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_three"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#18b4ed"%20%20%20%20%20%20%20%20app:title="标题栏4"%20%20%20%20%20%20%20%20app:titleTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_five"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_four"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20android:gravity="center_vertical"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#00ff00"%20%20%20%20%20%20%20%20app:leftBackground="@drawable/backbtn"%20%20%20%20%20%20%20%20app:leftWidth="15dp"%20%20%20%20%20%20%20%20app:leftHeight="15dp"%20%20%20%20%20%20%20%20app:leftLeftMargin="5dp"%20%20%20%20%20%20%20%20app:leftTopMargin="15dp"%20%20%20%20%20%20%20%20app:title="标题栏5"%20%20%20%20%20%20%20%20app:titleTextColor="#FF0000"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_six"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_five"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#18b4ed"%20%20%20%20%20%20%20%20app:title="标题栏6"%20%20%20%20%20%20%20%20app:titleTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20app:rightBackground="@drawable/actions_about"%20%20%20%20%20%20%20%20app:rightWidth="15dp"%20%20%20%20%20%20%20%20app:rightHeight="15dp"%20%20%20%20%20%20%20%20app:rightRightMargin="5dp"%20%20%20%20%20%20%20%20app:rightTopMargin="15dp"%20%20%20%20%20%20%20%20/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_seven"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_six"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#18b4ed"%20%20%20%20%20%20%20%20app:leftTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:leftText="返回"%20%20%20%20%20%20%20%20app:leftTextSize="7sp"%20%20%20%20%20%20%20%20app:title="标题栏7"%20%20%20%20%20%20%20%20app:titleTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20app:rightTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:rightText="更多"%20%20%20%20%20%20%20%20app:rightTextSize="7sp"/>%20%20%20%20<com.mobile.cdtx.blog.main.customview.TitleView%20%20%20%20%20%20%20%20android:id="@+id/id_title_eight"%20%20%20%20%20%20%20%20android:layout_below="@id/id_title_seven"%20%20%20%20%20%20%20%20android:layout_marginTop="10dp"%20%20%20%20%20%20%20%20android:layout_width="match_parent"%20%20%20%20%20%20%20%20android:layout_height="45dp"%20%20%20%20%20%20%20%20app:titleBackgroundColor="#18b4ed"%20%20%20%20%20%20%20%20app:leftTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:leftText="返回"%20%20%20%20%20%20%20%20app:leftTextSize="7sp"%20%20%20%20%20%20%20%20app:leftWidth="80dp"%20%20%20%20%20%20%20%20app:leftHeight="45dp"%20%20%20%20%20%20%20%20app:title="标题栏8"%20%20%20%20%20%20%20%20app:titleTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:titleTextSize="8sp"%20%20%20%20%20%20%20%20app:rightTextColor="#FFFFFF"%20%20%20%20%20%20%20%20app:rightText="更多"%20%20%20%20%20%20%20%20app:rightTextSize="7sp"%20%20%20%20%20%20%20%20app:rightWidth="80dp"%20%20%20%20%20%20%20%20app:rightHeight="45dp"/></RelativeLayout>自定义组件中使用的属性,res/values/attrs.xml<?xml%20version="1.0"%20encoding="utf-8"?><resources>%20%20%20%20%20%20%20%20<declare-styleable%20name="TitleView">%20%20%20%20%20%20%20%20<!--%20标题栏的属性%20--> <attr%20name="titleBackgroundColor"%20format="color|reference"/>%20%20%20%20%20%20%20%20<attr%20name="title"%20format="string"/>%20%20%20%20%20%20%20%20<attr%20name="titleTextSize"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="titleTextColor"%20format="color"/>%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20<!--%20左边按钮的属性%20-->%20%20%20%20%20%20%20%20<attr%20name="leftTopMargin"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="leftLeftMargin"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="leftWidth"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="leftHeight"%20format="dimension"/> <attr%20name="leftTextSize"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="leftTextColor"%20format="color"/>%20%20%20%20%20%20%20%20<attr%20name="leftBackground"%20format="color|reference"/>%20%20%20%20%20%20%20%20<attr%20name="leftText"%20format="string"/>%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20<!--%20右边按钮的属性%20-->%20%20%20%20%20%20%20%20<attr%20name="rightTopMargin"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="rightRightMargin"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="rightWidth"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="rightHeight"%20format="dimension"/> <attr%20name="rightTextSize"%20format="dimension"/>%20%20%20%20%20%20%20%20<attr%20name="rightTextColor"%20format="color"/>%20%20%20%20%20%20%20%20<attr%20name="rightBackground"%20format="color|reference"/>%20%20%20%20%20%20%20%20<attr%20name="rightText"%20format="string"/>%20%20%20%20</declare-styleable>%20%20%20%20</resources>左右按钮点击的背景效果文件,res/drawable/button_bg.xml<?xml%20version="1.0"%20encoding="utf-8"?><selector%20%20%20%20xmlns:android="http://schemas.android.com/apk/res/android">%20%20%20%20<!--%20pressed%20-->%20%20%20%20<item%20android:state_pressed="true"%20>%20%20%20%20%20%20%20%20<shape%20%20android:shape="rectangle">%20%20%20%20%20%20%20%20%20%20%20%20<solid%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20android:color="#ff8c00"%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20/>%20%20%20%20%20%20%20%20</shape>%20%20%20%20</item>%20%20%20%20<!--%20focus%20-->%20%20%20%20<item%20android:state_focused="true"%20>%20%20%20%20%20%20%20%20<shape>%20%20%20%20%20%20%20%20%20%20%20%20<solid%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20android:color="#ff8c00"/>%20%20%20%20%20%20%20%20</shape>%20%20%20%20</item>%20%20%20%20<!--%20default%20-->%20%20%20%20<item>%20%20%20%20%20%20%20%20<shape>%20%20%20%20%20%20%20%20%20%20%20%20<solid%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20android:color="#ff8c00"/>%20%20%20%20%20%20%20%20</shape>%20%20%20%20</item></selector>bankbtn.png 这是一张返回按钮的图标,上传总是显示不出来,截图吧actions_about.png
新闻热点
疑难解答