這里說的是自定義標題欄組件,通過設置組件的部分屬性,實現標題欄的不同的展示樣式,先上效果圖:
%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
新聞熱點
疑難解答