標籤:
setBackgroundDrawable 是在安卓舊API裡面的,不過需要做低版本相容用到設定背景,如果控制項是TextView,代碼添加背景的話,就是使用setBackgroundDrawable,在華為機型裡面會發現一個問題,就是控制項內間隔失去效果,導致Padding的沒用了。不過用在XML布局就是可以的 <pre style="font-family: Menlo; font-size: 12pt; background-color: rgb(255, 255, 255);"><pre name="code" class="html"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bt_bg" android:paddingBottom="8dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:paddingTop="8dp" />
這樣用XML布局是可以看不出問題的,如果需要代碼改動這個TextView的背景,就是使用setBackgroundDrawable的話,你會發現
android:padding
這些都無效了,內間隔都失去效果,原因我歸咎於TextView或者setBackgroundDrawable的BUG吧,不過可以解決就是在setBackgroundDrawable後面使用
setPadding 手動添加內間隔即可,
bt_pay.setPadding(10,8,10,8)
至於具體什麼原因導致的,歡迎有空去看看源碼,還有一個解決辦法就是使用Button 代替TextView 即可,一般按鈕的話
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bt_bg" android:paddingBottom="8dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:paddingTop="8dp" />
這樣的問題經常不小心就錯過,不是所有機型都出現,特殊情況做相容就會發現了,以此記錄問題
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
android setBackgroundDrawable 的padding問題