【发布时间】:2013-05-10 19:38:08
【问题描述】:
我一直在使用自定义styles,我做得很好,但现在我很困惑如何将完全不同的styles 用于CompoundButtons、Spinners、ImageButtons 等小部件.. 我为每种类型定制了Buttons,每个类型都有自己的drawable,具体取决于其状态。我已经弄清楚了,但我需要两个完全不同的Themes(例如,当按下状态时使用meal_orange ImageButton,并使用meal_blue 表示ImageButton 状态按下我的另一个Theme)取决于两个客户中的哪一个应用程序是为。我已经搜索过这个问题,所以要么没有两个单独的应用程序就不可能,要么我没有搜索正确的术语或完全理解themes(可能两者都有)。
我目前拥有的一个小例子是我的styles.xml
// these point to separate selector files to show the different states
<style name="MealButton" parent="@android:style/Widget.ImageButton">
<item name="android:background">@drawable/meal_button</item>
</style>
<style name="CatButton" parent="@android:style/Widget.ImageButton">
<item name="android:background">@drawable/cat_button</item>
</style>
我最初创建了一个自定义的theme,类似
<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
ActionBar 部分无关紧要,因为我创建了一个自定义栏,但如果我能做到这一点,并且在这里指示使用上述 ImageButton 样式示例,那就太好了。
我希望我正确地解释了这一点。有人可以告诉我这是否可能。我无法想象我需要两个不同版本的应用程序,但也许。我以为我可以在不同的themes 中声明这些styles,但我似乎无法为widgets 做到这一点。
澄清一下,问题是我如何在第二个代码块中使用第一个代码块并为两个单独的主题执行此操作?谢谢!
【问题讨论】:
-
我真的很困惑。您想根据按钮的状态为按钮设置不同的样式吗?这是你的最终目标吗?
-
我已经为他们准备了两个不同的图标,但只有两组。每个
Button都有一个表示按下的图标和一个表示正常的图标。但是我有两套……比如说,一套给 A 公司,一套给 B 公司。如果由 A 公司下载,我想让它使用第 1 组按钮,如果由 B 公司下载,则使用第 2 组按钮。我希望有道理 -
没有向他们发送单独的 APK,我不确定你是否能做到——请参阅 stackoverflow.com/questions/3246447/…
-
@Catherine 感谢您的回复。我不确定后期是否真的对我有帮助,我正在努力避免不得不制作两个单独的应用程序来跟上。问题是,这是一个专业应用程序,仅授权给订阅我们服务的客户,我们在发送设备之前加载应用程序。我想最简单的方法是将所有
drawables和styles命名为相同,并且当我有更新工作时只需要更新java 和layout文件。但是如果可能的话,让一个带有从服务器发送的标志的应用程序使用某个theme会更理想 -
那篇文章很有帮助,因为您想要以编程方式应用主题,而根据它这是不可能的。
标签: android widget styles themes