Android自定義View:實(shí)用性TitleBar標(biāo)題欄(不含防腐劑节视,可直接食用)

TitleBar

???? https://github.com/loperSeven/TitleBar 殖演,滿足各種日常使用的標(biāo)題欄,不要讓你的時(shí)間浪費(fèi)在寫標(biāo)題欄上情臭。


序言

android support library 推出的ToolBar拓展性很高省撑,也是官方代替ActionBar的一個(gè)控件,ToolBar的優(yōu)點(diǎn)在于可以配合其他控件寫出爆炸性的UI交互俯在, 但是在日常開發(fā)中竟秫,我們用不到這些東西,也正是因?yàn)檫@樣朝巫,才自己寫了個(gè)TitleBar鸿摇。


截圖

image

ps:MIUI系統(tǒng)默認(rèn)的跳轉(zhuǎn)和代碼設(shè)置的跳轉(zhuǎn)動(dòng)畫,剛好一樣所以看不出來效果劈猿。


特性

  • 極簡(jiǎn)使用方法
  • 全局配置控件屬性參數(shù) (代碼內(nèi)>xml內(nèi)>全局配置)
  • 返回按鈕點(diǎn)擊事件默認(rèn)監(jiān)聽執(zhí)行返回操作(不用每個(gè)界面去寫finish拙吉,它幫你做到了)潮孽,自定義監(jiān)聽覆蓋默認(rèn)返回操作
  • 標(biāo)題顯示模式人性化
  • 支持水波紋點(diǎn)擊效果

使用

依賴

dependencies {
        compile'com.github.loperSeven:TitleBar:1.0.1'
}

or

方法一.下載layout依賴包,以module方式導(dǎo)入項(xiàng)目
方法二.將layout中的TitleBar和res->values->attr中的TitleBar自定義屬性copy到相應(yīng)位置  

全局配置

  TitleBar.getConfig()
                .setTitleTextSize(getApplicationContext(), 16)
                .setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorTextBlackLight))
                .setMenuTextSize(getApplicationContext(), 14)
                .setMenuTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorTextBlackLight))
                .setPadding(getApplicationContext(), 16)
                .setCenterTitle(false)
                .setUseRipple(false)
                .setTitleEllipsize(TextUtils.TruncateAt.MARQUEE)
                .setBackgroundColor(Color.WHITE)
                .setBorderColor(ContextCompat.getColor(getApplicationContext(), R.color.colorBorder))
                .setShowBorder(false)
                .setBorderWidth(getApplicationContext(), 0.6f)
                .setActivityBackAnim(R.anim.activity_backward_enter, R.anim.activity_backward_exit);

以上代碼為設(shè)置TitleBar的默認(rèn)屬性筷黔,可選擇性設(shè)置也可不設(shè)置往史,設(shè)置后則不用在xml或代碼中重復(fù)設(shè)置,再次調(diào)用設(shè)置可覆蓋之前設(shè)置佛舱,可在項(xiàng)目任一地方使用椎例,前提是在你的使用titleBar之前,建議放在啟動(dòng)頁(yè)或者Application中请祖。(當(dāng)其中某一項(xiàng)不滿足某個(gè)場(chǎng)景時(shí)可在xml中或者代碼中直接設(shè)置覆蓋订歪,不會(huì)影響項(xiàng)目中其他titleBar)


XML

 <com.loper7.layout.TitleBar
        android:id="@+id/main_titleBar"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        app:tBackgroundColor="@color/colorPrimary"
        app:tMenuImage="@mipmap/ic_menu_white"
        app:tTitleText="TITLEBAR"
        app:tTitleTextColor="@color/colorTextWhite"
        app:tTitleTextSize="16sp" />

代碼中

代碼中可像其他View一樣

TitleBar titleBar = new TitleBar(this);
...
addView(titleBar);

綁定LayoutParams,通過titleBar內(nèi)提供的屬性方法設(shè)置titleBar屬性肆捕,最后添加在父View中刷晋。

Github

點(diǎn)擊這里

最后

喜歡請(qǐng)點(diǎn)star????,意見慎陵、建議眼虱、bug、新的功能請(qǐng)?zhí)酙ssues席纽,會(huì)不定期查看并更新捏悬,謝謝閱讀。







-----------------------------------下面是所有公共方法和自定義屬性------------------------------------

API

Name Param remark
setBackImageDrawable setBackImageDrawable(Drawable drawable) 設(shè)置返回按鈕圖片
setBackImageResource setBackImageResource(@DrawableRes int resId) 設(shè)置返回按鈕圖片
setTitleText setTitleText(String title) setTitleText(@StringRes int resId) 設(shè)置標(biāo)題文字
setTitleTextColor setTitleTextColor(@ColorInt int color) 設(shè)置標(biāo)題文字顏色
setTitleTextSize setTitleTextSize(@Dimension int sp) 設(shè)置標(biāo)題文字大小
setCenterTitle setCenterTitle(boolean isCenterTitle) 設(shè)置標(biāo)題顯示模式(true:居中顯示 false:局左顯示)
setTitleEllipsize setTitleEllipsize(TextUtils.TruncateAt ellipsize) 設(shè)置標(biāo)題ellipsize屬性
setMenuImageDrawable setMenuImageDrawable(Drawable drawable) 設(shè)置菜單按鈕圖片(菜單圖片和文字不能同時(shí)出現(xiàn),圖片優(yōu)先于文字顯示,此邏輯若有問題請(qǐng)?zhí)岢鯥ssues齿兔,后面修改)
setMenuImageResource setMenuImageResource(@DrawableRes int resId) 設(shè)置菜單按鈕圖片
setMenuText setMenuText(String menuText) setMenuText(@StringRes int resId) 設(shè)置菜單文字
setMenuTextColor setMenuTextColor(@ColorInt int color) 設(shè)置菜單文字顏色
setMenuTextSize setMenuTextSize(@Dimension int sp) 設(shè)置菜單文字大小
setActivityAnim setActivityAnim(@AnimRes int enter, @AnimRes int exit) 設(shè)置activity進(jìn)入退出動(dòng)畫
clearActivityAnim clearActivityAnim() 清除activity動(dòng)畫
setUseRipple setUseRipple(boolean isUseRipple) 設(shè)置水波紋
setShowBorder setShowBorder(boolean isShowBorder) 設(shè)置底部分割線是否顯示
setBorderColor setBorderColor(@ColorInt int color) 設(shè)置底部分割線顏色
setBorderWidth setBorderWidth(@Dimension float dp) 設(shè)置底部分割線的寬度
setBackGroundColor setBackGroundColor(@ColorInt int color) 設(shè)置背景顏色
setOnBackListener setOnBackListener(OnBackListener onBackListener) 返回按鈕點(diǎn)擊監(jiān)聽,默認(rèn)監(jiān)聽為退出當(dāng)前activity抒和,返回前一個(gè)activity
setOnMenuListener setOnMenuListener(OnMenuListener onMenuListener) 菜單按鈕點(diǎn)擊監(jiān)聽setOnTitleListener
setOnTitleListener setOnTitleListener(OnTitleListener onTitleListener) 標(biāo)題點(diǎn)擊監(jiān)聽
getConfig static Config getConfig() 獲取全局配置的class

自定義屬性

Name Value remark
tCenterTitle boolean 設(shè)置標(biāo)題顯示模式(true:居中顯示 false:局左顯示)
tBackImage reference 設(shè)置返回按鈕圖片
tPadding dimension 設(shè)置子控件們的間距
tTitleTextSize dimension 設(shè)置標(biāo)題文字大小
tTitleTextColor color 設(shè)置標(biāo)題文字顏色
tTitleText string 設(shè)置標(biāo)題文字
tMenuTextSize dimension 設(shè)置菜單文字大小
tMenuTextColor color 設(shè)置菜單文字顏色
tMenuImage reference 設(shè)置菜單圖片(菜單圖片和文字不能同時(shí)出現(xiàn),圖片優(yōu)先于文字顯示彤蔽,此邏輯若有問題請(qǐng)?zhí)岢鯥ssues摧莽,后面修改)
tMenuText string 設(shè)置菜單文字
tUseRipple boolean 設(shè)置是否使用水波紋
tBackgroundColor color 設(shè)置背景顏色
tBorderColor color 設(shè)置下劃線顏色
tShowBorder boolean 設(shè)置是否顯示下劃線
tBorderWidth dimension 設(shè)置下劃線寬度
tTitleEllipsize enum 設(shè)置標(biāo)題過長(zhǎng)時(shí)顯示方式
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市顿痪,隨后出現(xiàn)的幾起案子镊辕,更是在濱河造成了極大的恐慌,老刑警劉巖蚁袭,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件征懈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡揩悄,警方通過查閱死者的電腦和手機(jī)卖哎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亏娜,你說我怎么就攤上這事焕窝。” “怎么了维贺?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵它掂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我溯泣,道長(zhǎng)虐秋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任垃沦,我火速辦了婚禮客给,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘栏尚。我一直安慰自己起愈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布译仗。 她就那樣靜靜地躺著,像睡著了一般官觅。 火紅的嫁衣襯著肌膚如雪纵菌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天休涤,我揣著相機(jī)與錄音咱圆,去河邊找鬼。 笑死功氨,一個(gè)胖子當(dāng)著我的面吹牛序苏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捷凄,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼忱详,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了跺涤?” 一聲冷哼從身側(cè)響起匈睁,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桶错,沒想到半個(gè)月后航唆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡院刁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年糯钙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡任岸,死狀恐怖鸳玩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情演闭,我是刑警寧澤不跟,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站米碰,受9級(jí)特大地震影響窝革,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吕座,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一虐译、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吴趴,春花似錦漆诽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至撇叁,卻和暖如春供鸠,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背陨闹。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工楞捂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趋厉。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓寨闹,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親君账。 傳聞我的和親對(duì)象是個(gè)殘疾皇子繁堡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348