Android 在应用程序中创建两个独立的主题

Android 在应用程序中创建两个独立的主题,android,widget,styles,themes,Android,Widget,Styles,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>
ActionBar
部分是不相关的,因为我创建了一个自定义栏,但是如果我可以这样做,并且在这里指示使用上面的
ImageButton
样式示例,那就太好了

我希望我的解释是正确的。有人能告诉我这是否可行吗。我无法想象我会需要两个不同版本的应用程序,但也许。我想我可以在不同的
主题中声明这些
样式
,但我似乎无法为
小部件
这样做


只是想澄清一下,问题是我如何在第二块代码中使用第一块代码,并为两个不同的主题使用它们?谢谢

不幸的是,这是不可能的

应用程序样式无法在应用程序范围内以编程方式控制,因此您无法真正设置标志并使其对每个客户端单独工作

您可能有一个bash脚本,或者使用maven,通过在每个构建的基础上交换XML文件来自动化构建


或者,如果两个客户机的代码库完全相同,则可以将其移动到库项目中,并创建两个源于此的项目,以具有不同的主题。

我真的很困惑。您想根据按钮的状态为其设置不同的样式吗?这就是你的最终目标吗?我已经为他们准备了两个不同的图标,但有两套。每个
按钮
都有一个用于按下的图标和一个用于正常的图标。但我有两套……比如,一套是A公司的,一套是B公司的。如果A公司下载,我想让它使用set 1按钮,如果B公司下载,则使用set 2按钮。我希望这样做有意义。把它们分开发送是明智的,我不确定你能做到——请看@Catherine谢谢你的回复。我不确定post是否真的对我有帮助,我正在努力避免制作两个独立的应用程序来跟上进度。问题是,这是一个专门的应用程序,仅授权给订阅我们服务的客户,我们在发送设备之前加载应用程序。我想最简单的方法就是将所有的
drawables
style
命名为相同的名称,并且在更新工作时只需更新java和
layout
文件。但是如果可能的话,更理想的做法是让服务器发送一个带有标志的应用程序来使用某个
主题,这篇文章会有所帮助,因为你想要的是以编程方式应用主题,而这是不可能的。谢谢你的快速回复。这就是为什么我在上次选举中投了你的票:)听起来这可能是一个很好的可能性,但我必须研究我将如何做到这一点。是我一个人,还是有可能?我已经搜索和思考了一段时间如何做到这一点,我需要在未来几天作出决定。我的想法是,你应该能够拥有一个包含不同
风格的
主题
,并通过编程方式更改
主题
,以及相应的
风格
。我在我的作品最后一篇评论中的“解决方案”对你来说是否合适?再次感谢你的快速回复和解释。如果你能给我一个不可能的原因,或者如果我的“解决方案”看起来是可行的,那就太好了。注意,目前代码完全相同,但我必须保持灵活性,因为您知道销售人员是如何工作的;)@codeMagic您最后的评论似乎是最好的解决方案。我看到有人写了一篇很长的回帖,他为风格做了一个半解析器。我看看能不能找到。如果它运行良好,它可能只允许您使用一个apk。好吧,我希望我所追求的在框架内是可能的,我猜不是。谢谢
<style name="CustomActivityTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>