我使用的主题(动态)在我的Android应用程序,就像这样:设置主题颜色动态
my_layout.xml(摘录):
<TextView
android:id="@+id/myItem"
style="?my_item_style" />
attrs.xml(摘录) :
<attr name="my_item_style" format="reference" />
的themes.xml(提取物):
<style name="MainTheme.Blue">
<item name="my_item_style">@style/my_item_style_blue</item>
</style>
<style name="MainTheme.Green">
<item name="my_item_style">@style/my_item_style_green<item>
</style>
styles.xml(摘录):
<style name="my_item_style_blue">
<item name="android:textColor">@color/my_blue</item>
</style>
<style name="my_item_style_green">
<item name="android:textColor">@color/my_blue</item>
</style>
所以,你可以看到,我动态设置主题。我使用这个类:
public class ThemeUtils {
private static int sTheme;
public final static int THEME_BLUE = 1;
public final static int THEME_GREEN = 2;
public static void changeToTheme(MainActivity activity, int theme) {
sTheme = theme;
activity.startActivity(new Intent(activity, MyActivity.class));
}
public static void onActivityCreateSetTheme(Activity activity)
{
switch (sTheme)
{
default:
case THEME_DEFAULT:
case THEME_BLUE:
activity.setTheme(R.style.MainTheme_Blue);
break;
case THEME_GREEN:
activity.setTheme(R.style.MainTheme_Green);
break;
}
}
}
我想知道,有没有办法如何做这个代码(其他城市主题色)?例如,我有以下码(摘录):
((TextView) findViewById(R.id.myItem)).setTextColor(R.color.blue);
它可以通过一些帮助方法,它会使用可用的主题switch
命令,并返回正确的颜色为主题进行。但我想知道是否有更好,更好,更快的方法。
谢谢!
从哪里可以设置动态主题?你能分享那些代码吗? – azizbekian
@azizbekian我已经添加了ThemeUtils类,但我不认为它与我的问题有关。 – Tom11