我在从 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
获得“正常”背景?
最佳答案
设置 Button 样式的一个好方法是使用 @style/Widget.AppCompat.Button.Colored
样式。
Widget.AppCompat.Button.Colored
样式扩展了 Widget.AppCompat.Button
样式,并自动应用您在应用主题中选择的强调色。
<Button
style="@style/Widget.AppCompat.Button.Colored"
/>
要自定义背景颜色而不更改主主题中的强调色,您可以使用 android:theme
属性并扩展 ThemeOverlay
为 Button 创建自定义主题主题。
<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>
关于android - 具有 appcompat 的 ImageButton 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39211921/