我使用的是內置的主題我的Android應用:的Android按鈕的背景顏色改變按鈕的大小
<style name="AppTheme" parent="android:Theme.Black">
<!-- Customize your theme here. -->
</style>
我很高興與這一主題,但我想改變一個按鈕的背景顏色。下面是它的外觀默認:
這裏的時候我添加背景顏色來此按鈕(android:background="@color/play_bg"
)會發生什麼:
咦!它基本上改變了所有按鈕的大小,填充和邊距!
所以我設法使用backgroundTint
屬性(android:backgroundTint="@color/play_bg"
),以獲得期望的結果:
不幸的是,這僅僅是因爲API,這是不是我接受的21版本的支持。
所以兩個問題:
- 爲什麼與按鈕的屬性的其餘部分更改背景混亂?
- 如何在沒有
backgroundTint
的情況下獲得預期結果?
還有一個額外問題:如何以編程方式獲得預期結果(我的應用程序中有動態按鈕,所以這會非常有用)?
尼斯的更簡單的方法。有用!爲了完整起見,你能解釋一下'PorterDuff.mode.MULTIPLY'的作用嗎?另外,你知道爲什麼「android:background =」@ color/...「這個」直觀的「解決方案不起作用嗎? –
我們主要在設計圖形應用時使用PorterDuff。 PorterDuff被描述爲一種組合圖像的方式,就好像它們是彼此重疊的「不規則形狀的紙板塊」一樣,以及混合重疊部分的方案。 下面是文章中,我發現,WIL更好地解釋你: http://ssp.impulsetrain.com/porterduff.html java.lang.Object繼承 ↳\t java.lang.Enum中的 \t↳\t android.graphics.PorterDuff.Mode 參考:http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html –
關於你的問題,爲什麼你的母語的方法沒有奏效: 當您使用背景時,背景對文本所在的部分進行了更改。背景取決於您正在使用的文本大小。 對於整個背景更改,您可能需要setColorFiller(Color.RED) –