在我的应用程序中我会更改背景和文本颜色(例如在Google Sky Map应用程序中,您可以设置更改背景和文本颜色的“夜间模式”),如何使用相同的布局执行相同的操作这两个变化?如果可能的话,我也会改变一些文本(例如我写意大利语单词,我会用英语单词改变它)。有人可以帮我提供任何教程,示例或代码吗?非常感谢你。
答案 0 :(得分:0)
您可以使用控件上的特定方法以编程方式更改文本和背景颜色,如:
View someView = findById(R.id.someView );
view.setBackgroundResource( R.drawable.someDrawable );
但那将是一个接一个。你可以创建几种样式,但不幸的是,在构建小部件之后设置小部件的样式是单调乏味的,因为你必须像上面那样进行单独的调用:
View someView = findById(R.id.someView );
(TextView) view).setTextColor(getResources().getColor(R.color.white));
(TextView) view).setTypeface(Typeface.DEFAULT_BOLD);
最后,主题是定义所有UI的资源中定义的样式集合。创建活动时可以立即设置主题:
http://developer.android.com/guide/topics/ui/themes.html
Choosing a style / theme programmatically at run time
对于文本,您可以使用strings.xml资源轻松外化文本,并保留意大利语版本和英文版本,Android将使用与用户的区域设置最佳对应的正确版本。如果Android无法为用户的语言环境找到匹配的字符串资源,则会使用默认的strings.xml。对于strings.xml,默认为英语通常是个好主意,并为italian创建strings_it.xml。
http://developer.android.com/guide/topics/resources/index.html