2016-08-29 132 views
0

ImageButton的背景顏色我有問題,有一個從AppCompatImageButton一個很好的背景,只是爲了嘗試,我比較這兩個佈局:與程序兼容性

<android.support.v7.widget.AppCompatImageButton 
     android:id="@+id/imageButtonI" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_centerVertical="true" 
     android:contentDescription="@string/icolor" 
     android:tint="@color/accent" 
     app:srcCompat="@drawable/magnify"/> 

    <ImageButton 
     android:id="@+id/imageButtonS" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_centerVertical="true" 
     android:contentDescription="@string/scolor" 
     android:tint="@color/accent" 
     android:src="@drawable/magnify"/> 

和樣式文件:

<style name="AppBaseTheme" parent="android:Theme.Material"> 
    <item name="android:colorPrimary">@color/primary</item> 
    <item name="android:colorPrimaryDark">@color/primaryDark</item> 
    <item name="android:colorAccent">@color/accent</item> 
</style> 

正如你可以從這個圖像看到的,但ImageButton的背景是「正常的」,而在appcompat中沒有任何背景。如何使用AppCompatImageButton獲得「正常」背景?

Current layout rendering

回答

0

我不知道支持庫的版本,您使用它,但在此之前有在這裏報告了圖書館的bug,

https://code.google.com/p/android/issues/detail?id=78428

但他們已經解決了它最新的更新,

是的,它似乎現在工作與 android.support引入。 AppCompat v22.1.0中的v7.widget.AppCompatButton,顏色 可以使用「colorButtonNormal」控制整個主題級別。

http://android-developers.blogspot.com/2015/04/android-support-library-221.html http://chris.banes.me/2015/04/22/support-libraries-v22-1-0/

爲主題

<item name="colorButtonNormal">@color/button_color</item> 

的版本21

<item name="android:colorButtonNormal">@color/button_color</item> 

希望這會幫助你。

感謝

+0

我使用24.2.0 – greywolf82

+0

嘗試在你的主題 –

2

一個好辦法樣式的按鈕使用的樣式@style/Widget.AppCompat.Button.Colored

Widget.AppCompat.Button.Colored樣式擴展了Widget.AppCompat.Button樣式,並自動應用您在應用主題中選擇的重音顏色。

<Button 
    style="@style/Widget.AppCompat.Button.Colored" 
/> 

自定義背景色不改變口音的顏色在你的主題,你可以創建使用android:theme屬性的按鈕自定義主題和擴展ThemeOverlay主題。

<Button 
    style="@style/Widget.AppCompat.Button.Colored" 
    android:theme="@style/MyButtonTheme"/> 

定義以下主題:

<!-- res/values/themes.xml --> 
    <style name="MyButtonTheme" parent="ThemeOverlay.AppCompat.Light"> 
     <item name="colorAccent">@color/my_color</item> 
</style> 
+0

使用以上以API 21是好的,但在奇巧的背景是白色的.... – greywolf82

+1

@ greywolf82我終於明白是什麼原因了!您必須從AppCompatActivity擴展您的活動。 – hrach

+0

背景在21歲前是白色的。你能告訴我如何解決? – Darush