请求关于android主题的指导

时间:2016-09-23 15:50:14

标签: java android

  1. 方案: 我有一个场景,我必须建立一个apk,它将有两组主题和drawable。
  2. 我们可以在android中容纳这种情况,因此在编译期间apk必须选择不同的主题和drawable。基于以下某些条件

    设置1

    设置2

    主题 (黑暗版) 在Res文件夹中 文件夹名称:Drawable Image1.png Image2.Png Image3.Png Image4.Png

    主题 (轻版) 在Res文件夹中 文件夹名称:Drawable Image1.png Image2.Png Image3.Png Image4.Png

    注意:在第1组和第2组中,可绘制图像不同但名称相同。即,组1中的图像1与组2中的图像1不同

    请指导我关于我必须选择的方法

    提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以在styles.xml中声明2个不同的应用主题,如下所示:

 var results = tables.Select(t => t.SubTable)
                     .Where(a => listOfIDs.Contains(a.SubTableID))
                     .Select(s => s.Table);

然后在attrs.xml中声明所有这些drawable:

<style name="theme1">
    <item name="drawable1">@drawable/drawable1forTheme1</item>
    // same for all your other drawables
</style>

<style name="theme2">
    <item name="drawable1">@drawable/drawable1forTheme2</item>
    // same for all your other drawables
</style>

然后您可以通过属性简单地引用右侧drawable,并且显示的实际drawable将取决于所设置的主题。

例如在布局中:

<attr name="drawable1" format="reference"/>
// same for all your other drawables

注意&#34;?attr /&#34;告诉Android应该从属性加载drawable,这个drawable属性将根据设置的主题而改变。