android - 主题 : Theme dependent drawable?

标签 android android-theme

我希望能够声明一些主题以轻松更改我的应用程序的外观。所以我知道你可以定义一个继承自 android:Theme 的样式,然后在其中定义属性。

但是有两个问题:

  1. 如果我想为应用内的不同 View 设置不止一种背景颜色怎么办?这样我就可以拥有整个 Activity 的背景和 Activity 中 TextView 的不同背景以及按钮等的另一个背景。但是这些(不同的)颜色依赖于主题吗?
  2. 是否可以根据使用的主题定义一组可绘制对象。我的意思是类似于如何为不同的屏幕密度定义不同的可绘制对象。理想情况下,我会为不同的主题使用不同配色方案的图像。可以在 android 中定义此行为吗?

感谢您的帮助, 詹姆斯

最佳答案

您可以为每种小部件类型所需的不同颜色或可绘制对象定义不同的样式,并在您的各种主题中引用它们。例如:

<!-- themes -->

<style name="MyTheme" parent="android:style/Theme.Light">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/something</item>
    <item name="android:buttonStyle">@style/MyButton</item>
</style>

<style name="MyTheme.Red">
    <item name="android:buttonStyle">@style/MyButton.Red</item>
</style>

<style name="MyTheme.Blue">
    <item name="android:buttonStyle">@style/MyButton.Blue</item>
</style>

<!-- styles -->

<style name="MyButton" parent="android:style/Widget.Button">
    <item name="android:background">@drawable/btn_mydefault</item>
</style>

<style name="MyButton.Red">
    <item name="android:background">@drawable/btn_red</item>
</style>

<style name="MyButton.Blue">
    <item name="android:background">@drawable/btn_blue</item>
</style>

关于android - 主题 : Theme dependent drawable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408830/

相关文章:

java - 当软键盘出现时如何隐藏 Fragment TabHost android 布局?

java - 为什么我的项目溢出了 LinearLayout?

android - 缓存图像的理想位置是什么?

android - 如何在不将 App Theme 更改为 Custom Theme 的情况下制作自定义标题栏?

android - 有没有办法改变菜单项图标和文本的颜色?

java - 看不到通知 - Android Studio

android - 如何在 Visual Studio Community 2015 中更新 Xamarin for Android

android - 无法设置 colorControlNormal 和 android :textColor in style

android - 如何在 Android Studio 预览版中切换夜间模式和灯光模式?

android - 为 KeyboardView 应用主题