2016-08-29 99 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