為按鈕添加邊框~

需求

近來App中按鈕要做統(tǒng)一話,如圖所示框住部分為可點擊區(qū)域,顯示區(qū)域則為白色圓角框區(qū)域~~

317AA6AC-7059-4876-A5C3-5293D82A2F74.png

實現(xiàn)思路

根據(jù)上圖表示,實現(xiàn)思路有

  1. 自定義控件
    自定義控件就可以完美的實現(xiàn)這樣的功能,并且也方面調整,對于新項目來說 是一個最優(yōu)的方案了,但是由于是對app進行優(yōu)化,項目中之前一直使用的是button,改起來工作量繁重,并且都是體力活不經(jīng)濟實惠,對于我這種懶惰的程序員來說,簡直是折磨·· pass

  2. 基于button做修改

    2.1 直接使用帶文字的圖片展示。

    但是由于app中包含了多種字體,如果要帶文字的圖片則一個按鈕需要多張圖片,這會無止境的增加項目內的圖片,進而會增加項目包大小,非常的不經(jīng)濟·· 血崩··· Pass

    2.2 直接對button的titlelabel的layer做處理

    事實證明是可以的,但是效果圖如下··
    
FEB48514-0406-40D4-827D-1124B30C53A8.png
      可以看出由于button對titlelabel做的處理,導致邊框緊緊的圍著文字,顯得相當?shù)牟幻烙^,進而Pass

2.3 對button的layer做處理

基于2.2可知,對layer層直接做處理是可行的,只是由于button對titlelabel做的處理,導致titlelabel的frame和文本的高寬一致,不能直接使用其layer處理,但是如果我們得知了titlelabel的frame,直接對此frame進行寬高的增加,中心點不變,來生成一個新的layer放到button上。這樣處理下,圓角邊框僅僅和button的內容相關,則button可以任意設置寬高,進而點擊區(qū)域就不會被button的內容展示限制,簡直完美。

效果展示

紅色為可點擊區(qū)域,雖然在項目中 沒有用到 需要將button的imageview和titlelabel一起框起來的需求,但是在實際實現(xiàn)中,也將其實現(xiàn)進去了。
PS:同時也實現(xiàn)了安卓button自帶的點擊背景色改變效果~ 沒辦法,老大說要和安卓一樣。。我有一句·····

btnlayer.gif

Demo地址

如有問題-聯(lián)系郵箱357863248@qq.com.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,062評論 25 709
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,376評論 4 61
  • 前言 我們用的阿里的存儲服務,在我們上傳頭像的時候。偉大的后臺告訴我,前臺應該直接向阿里傳遞數(shù)據(jù),這樣的路徑是:i...
    沉默學飛翔閱讀 20,650評論 67 48
  • 夜半 微風習習, 親吻我的臉頰和裙袂。 高樓直聳穹空, 孤燈,一盞兩盞地散落, 孤星,一顆兩顆地亮著。 耳畔 傳來...
    微微風吟閱讀 602評論 0 1
  • ――讀韓紅月詩歌集《在驛動的詩行中行走》有感 海闊 提及河北滄州,腦海中總會涌現(xiàn)出韓愈的“燕趙多有慷慨之士”(《送...
    千島清泉閱讀 912評論 0 2

友情鏈接更多精彩內容