android横向排列 间隙,Android开发消除横向排列的多个Button之间的空隙
一.問題重述
摘要里描述的可能不太清楚,問題如下圖:
如何消除Button1和Button2之間的空隙,以及Button與左右邊界之間的空隙?
二.問題根源
這里出現(xiàn)的空隙其實(shí)是Button的背景圖片中的透明部分,如下圖:(兩個(gè)按鈕被同時(shí)按下)
因?yàn)殚g隙是Button自身的一部分,所以設(shè)置margin和padding為0也無(wú)法消除(至于把margin設(shè)置為負(fù)值,額,這算解決方案嗎?)
三.解決方案及驗(yàn)證
設(shè)置Button的style屬性:
(初始)
(兩個(gè)按鈕都被按下)
方案1的效果:可以消除間隙,并且不影響按鈕默認(rèn)的點(diǎn)擊效果(背景變藍(lán))
設(shè)置Button的style為自定義style(或者直接設(shè)置Button的background屬性為自定義圖片):
@drawable/whitecolor
0dp
center
(初始/按下)
方案2的效果:可以消除間隙,但按鈕默認(rèn)的點(diǎn)擊效果沒了
設(shè)置Button的background為透明色:
android:background="#00000000"
(初始/按下)
方案3的效果:可以消除間隙,但按鈕默認(rèn)的點(diǎn)擊效果沒了(和方案2效果一樣)
把LinearLayout換為TableLayout:
android:stretchColumns="*"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:text=" Button1" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="1"
android:text=" Button2" />
方案4的效果:無(wú)法消除間隙
自定義selector作為Button背景:
android:state_pressed="true">
android:background="@drawable/bg_btn"
(左邊按鈕被按下)
方案5的效果:可以消除間隙,并且不影響按鈕的默認(rèn)點(diǎn)擊效果(和方案1的效果類似,比方案1更好一些,可以自定義按鈕背景)
四.總結(jié)
消除按鈕間隙的關(guān)鍵在于改background屬性,用邊框不含透明色的圖片作為按鈕的背景即可消除間隙
消除按鈕間隙建議使用方案5:自定義selector作為按鈕背景圖片
總結(jié)
以上是生活随笔為你收集整理的android横向排列 间隙,Android开发消除横向排列的多个Button之间的空隙的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkpade470电脑配置(thi
- 下一篇: android照片备份软件下载,照片备份