一、Android中的样式和主题

    1、1样式

    样式是作用在控件上的,它是一个包含一个或者多个view控件属性的集合。android style类似网页设计中的css设计思路,可以让设计和内容分离,方便继承、复用、重用

    下面通过一个简单的案例演示自定义样式的用法,在该案例中,我们自定义一个样式,用于渲染Button控件的显示效果

    在res/values/styles.xml文件中添加

 

<style name="bt_style_1">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>
<item name="android:textSize">20sp</item>
<item name="android:textColor">#00ff00</item>
<item name="android:text">自定义样式1</item>
</style>
<!-- 继承上面的样式,如果属性相同就覆盖 -->
<style name="bt_style_2" parent="bt_style_1">
<item name="android:textSize">30sp</item>
<item name="android:text">自定义样式2</item>
</style>

在res/layout下的布局文件中,添加两个button

<Button style="@style/bt_style_1" />
<Button style="@style/bt_style_2" />

结果显示如图

 

2、2主题

    主题的定义和样式相同,都是在styles.xml文件下,均可以通过设置parent属性来继承一个父样式,不同的是,主题总用在Activity上的

    主题通过定义在AndroidManifest.xml文件中的的和节点下的”android:theme”属性作用在整个应用或者某个Activity,主题对整个应用或某个Activity 进行全局性影响。如果一个应用使用了主题,同时应用下的view 也使用了样式,

那么当主题和样式属性发生冲突时,样式的优先级高于主题。

    android系统也定义了一些主题,如果需要查阅,可以在文档的reference/android/R.style中查看。

    继续使用上面样式中修改过的styles.xml文件,在其中添加如下样式

<!--
主题也是通过在styles.xml 文件中定义<style>节点来定义。
同样式一样,指定一个全局唯一的名字给主题,通过parent 属性继承父样式。
-->
<style name="theme_noTitle">
<!-- 该属性使界面无标题-->
<item name="android:windowNoTitle">true</item>
</style>
<!-- 该属性使界面全屏-->
<style name="them_noTitle_full" parent="theme_noTitle">
<item name="android:windowFullscreen">true</item>
</style>

在AndroidManifest.xml文件中添加

<!-- 在application 中引入主题则所有activity 都适用-->
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/theme_noTitle" >
<!-- 在activity 中引入主题则当前Activity 适用-->
<activity
android:theme="@style/them_noTitle_full"
android:name="com.example.styleAndTheme.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

 

二、Android实现国际化

    android程序国际化,也就是程序可以根据系统所使用的语言,将界面中的文字翻译成与之对象的语言。这样,可以让程序更加通用,android可以通过资源文件非常方便的实现程序的国际化

在编写Android 项目时,通常都是将程序中要使用的字符串资源放置在res/values 目录下的strings.xml 文件中,为了给这些字符串资源实现国际化,可以在Android 项目的res 目录下,创建对应于各个语言的资源文件夹(例如,了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN、values-zh-rTW 和values-en-rUS的文件夹),然后在每个文件夹中创建一个对应的strings.xml 文件,并在该文件中定义对应语言的字符串即可。样,当程序运行时,就会自动根据操作系统所使用的语言来显示对应的字符串信息了。图片也可以进行国际化,同字符串的国际化类似,只需根据程序要兼容的语言版本,分别创建名称类似drawable-zh-rCN,drawable-zh-rTW 这的文件夹,将图片资源存放在文件夹下即可。

android中的样式主题和国际化的更多相关文章

  1. android中的样式和主题

    有的时候我们一个页面要用很多个textview,而且这些textview的样式非常相像,这种情况下我们可以把这些样式抽取出来,然后在每个textview中引用即可,这样修改起来也方便. 我们来看一个简 ...

  2. Android中EditText样式修改 聚焦光标、背景

    在Android开发中,根据项目的需求,需要定制一些特殊的样式,例如:使用EditText时,聚焦时的背景及光标图片使用自定义而非android系统默认的.这两天,在项目中涉及此需求,现记录如下: 首 ...

  3. Android中Context样式分析

    目录 1.样式定义以及使用 1.1.默认样式 1.2.样式定义及使用 1.3.当前样式下attr属性的获取 1.4.属性集合的定义与获取 2.Activity中Theme的初始化流程 2.1.系统调用 ...

  4. Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

    零.序 一.自定义Style 二.在XML中为属性声明属性值 1. 在layout中定义属性 2. 设置Style 3. 通过Theme指定 三.在运行时获取属性值 1. View的第三个构造函数的第 ...

  5. android 中theme样式的解释

    android:theme="@android:style/Theme.Dialog" : Activity显示为对话框模式 android:theme="@androi ...

  6. Android应用中动态更改主题的实现

    在android应用程序中我们可能需要切换模式,如晚上切换到夜间模式便于阅读等.本文参考了网上的一些资料,并结合实例,实现了动态更改主题的效果. Android中实现theme主题可以使用在activ ...

  7. Android 中Dialog的使用

    本文是参考ProAndroid的第10章Working with Dialogs的内容,在合适的地方添加了作者自己的一些见解最终成文. Android 中的对话框是一个展示在当前窗口上的小一号的窗口, ...

  8. 总结一下Android中主题(Theme)的正确玩法

    在AndroidManifest.xml文件中有<application android:theme="@style/AppTheme">,其中的@style/AppT ...

  9. 【转载】总结一下Android中主题(Theme)的正确玩法

    http://www.cnblogs.com/zhouyou96/p/5323138.html 总结一下Android中主题(Theme)的正确玩法 在AndroidManifest.xml文件中有& ...

随机推荐

  1. 火狐firefox插件配合scrapy,注意tbody会导致empty

    有2个常有插件,一个是xpath checker,一个是firepath(配合firebug) xpath checker是个好东西,不仅可以分析,还可以验证自己抽取的xpath是否正确 但xpath ...

  2. UTC时间

    世界的每个地区都有自己的本地时间,在Internet及无线电通信时,时间的统一非常重要! 整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信中,为统一而普遍使用一个标准时间,称为通用 ...

  3. codeforces Round #440 A Search for Pretty Integers【hash/排序】

    A. Search for Pretty Integers [题目链接]:http://codeforces.com/contest/872/problem/A time limit per test ...

  4. REST SOAP XML-RPC分析比较

    本文的标题“REST与SOAP之比较”确实有些让人误解.REST是代表性状态传输的名称首字母缩写,与其说它是标准,不如说是一种风格.然而,在我的前一篇文章中,正如我们所讨论的,众多从事Web服务的软件 ...

  5. 【动态规划】【记忆化搜索】CODEVS 1011 数的计算 2001年NOIP全国联赛普及组

    设答案为f(n),我们显然可以暴力地递归求解: f(n)=f(1)+f(2)+……+f(n/2). 但是n=1000,显然会超时. 考虑状态最多可能会有n种,经过大量的重复计算,所以可以记忆下来,减少 ...

  6. 【分块】bzoj1901 Zju2112 Dynamic Rankings

    区间k大,分块大法好,每个区间内存储一个有序表. 二分答案,统计在区间内小于二分到的答案的值的个数,在每个整块内二分.零散的暴力即可. 还是说∵有二分操作,∴每个块的大小定为sqrt(n*log2(n ...

  7. STL之priority_queue3

    描述 使用STL中的优先队列,将n个点按照横坐标从小到大顺序排序,如果横坐标相同,按照纵坐标从小到大排序. 部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { in ...

  8. Scala实战高手****第1课:大数据时代的“黄金”语言Scala

    共计28课,每节课程在1个小时左右. 每天至少2个课程.预计在11.30号完成. ——————————————————

  9. maven-pom-properties

    出处: http://blog.csdn.net/taiyangdao/article/details/52358083

  10. Android 多线程之IntentService 完全详解

    关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...