样式、主题、原始XML资源、Android程序国际化、Menu资源
2014-08-11 21:45
573 查看
样式资源主要用于对组件的显示样式进行控制,例如,改变文本框显示文字的大小和颜色等。一般放在res/values目录下,根元素是<resources></resources>,使用<style></style>标记定义样式,name属性指定样式的名称,<item></item>标记来定义格式项。
主题资源与样式资源类似,主题资源不能作用于单个的View组件,而是对所有(或单个)Activity起作用。
在AndroidManifest.xml文件中使用主题资源:使用android:theme属性指定要使用的主题资源。
在Java文件中使用主题资源:在Activity的onCreate( )方法中,通过setTheme( )方法指定。
Android程序国际化
为了给字符串资源实现国际化,可以在Android项目res目录下,创建对应于各个语言的资源文件夹。例如,为了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN,values-zh-rTW,values-en-rUS的文件夹,然后在每个文件夹中创建一个对应的strings.xml文件。
新建一个XML文件,Resource Type为Values,File命名为strings,如下,然后点击Next:
如下图所示创建中文繁体字符串资源:
Menu(菜单)资源
在res目录下简历menu文件夹,创建一个名为main的XML文件,如下创建两个菜单:
要在程序中显示菜单,需在Activity中重写如下的方法:
要监听菜单Item的点击事件,需重写onOptionsItemSelected方法:
XML资源
在res目录下创建一个新的folder,命名为xml,在xml文件下新建一个file,命名为users.xml。在users.xml中添加如下的内容:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user name="Liming" age="17"></user>>
<user name="WangWu" age="18"></user>
</users>
读取users.xml中的内容,如下所示:
XmlResourceParser p = getResources().getXml(R.xml.users);
try {
while (p.getEventType() != XmlResourceParser.END_DOCUMENT) {
if (p.getEventType() == XmlResourceParser.START_TAG) {//开始标签
if (p.getName().equals("user")) {//user标签
String nameString = p.getAttributeValue(null, "name");//读取属性
String ageString = p.getAttributeValue(null, "age");
System.out.println("name :"+nameString+" age :"+ageString);
}
}
try {
p.next();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
<style name="basic"> <item name="android:textSize">48dp</item> <item name="android:textColor">#f60</item> </style> <style name="title" parent="basic"> <item name="android:padding">10dp</item> </style>parent表示继承,使用格式如下:
style="@style/title"
主题资源与样式资源类似,主题资源不能作用于单个的View组件,而是对所有(或单个)Activity起作用。
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="Theme.Translucent" parent="android:style/Theme.Translucent"> <item name="android:alpha">0.95</item> <item name="android:windowNoTitle">true</item> </style> </resources>使用主题资源:
在AndroidManifest.xml文件中使用主题资源:使用android:theme属性指定要使用的主题资源。
<activity android:label="@string/app_name" android:theme="@style/Theme.Translucent" android:name=".MainActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
在Java文件中使用主题资源:在Activity的onCreate( )方法中,通过setTheme( )方法指定。
setTheme(R.style.bg);
Android程序国际化
为了给字符串资源实现国际化,可以在Android项目res目录下,创建对应于各个语言的资源文件夹。例如,为了让程序兼容简体中文、繁体中文和美式英文,可以分别创建名称为values-zh-rCN,values-zh-rTW,values-en-rUS的文件夹,然后在每个文件夹中创建一个对应的strings.xml文件。
新建一个XML文件,Resource Type为Values,File命名为strings,如下,然后点击Next:
如下图所示创建中文繁体字符串资源:
Menu(菜单)资源
在res目录下简历menu文件夹,创建一个名为main的XML文件,如下创建两个菜单:
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menuItemShowDialog" android:orderInCategory="100" android:showAsAction="never" android:title="Show Dialog"/> <item android:id="@+id/menuItemShowToast" android:orderInCategory="100" android:title="Show Toast" android:icon="@drawable/ic_launcher"/> </menu>
要在程序中显示菜单,需在Activity中重写如下的方法:
<span style="white-space:pre"> </span>@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; }
要监听菜单Item的点击事件,需重写onOptionsItemSelected方法:
@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menuItemShowDialog: new AlertDialog.Builder(this).setTitle("标题").setMessage("对话框").setPositiveButton("关闭", null).show(); break; case R.id.menuItemShowToast: Toast.makeText(this, "消息", Toast.LENGTH_SHORT).show(); break; default: break; } return super.onOptionsItemSelected(item);最终的效果如下:
XML资源
在res目录下创建一个新的folder,命名为xml,在xml文件下新建一个file,命名为users.xml。在users.xml中添加如下的内容:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user name="Liming" age="17"></user>>
<user name="WangWu" age="18"></user>
</users>
读取users.xml中的内容,如下所示:
XmlResourceParser p = getResources().getXml(R.xml.users);
try {
while (p.getEventType() != XmlResourceParser.END_DOCUMENT) {
if (p.getEventType() == XmlResourceParser.START_TAG) {//开始标签
if (p.getName().equals("user")) {//user标签
String nameString = p.getAttributeValue(null, "name");//读取属性
String ageString = p.getAttributeValue(null, "age");
System.out.println("name :"+nameString+" age :"+ageString);
}
}
try {
p.next();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
相关文章推荐
- Android 使用原始XML资源
- android第二十一步实现软件国际化、屏幕适配、样式与主题
- Android读取资源文件——读取原始Xml内容和使用Menu文件
- Android 使用原始xml资源
- android 学习随笔十九(对话框、样式、主题、国际化 )
- Android apk反编译图解(得到程序的java源代码,图片、XML配置、语言资源等文件)
- Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)
- Android入门——样式主题和自定义属性资源
- Android程序:IDE Eclipse主题样式和提示设置
- Android UI 手机页面信息(布局、样式及程序国际化问题)
- AndroidManifest.xml 中修改程序布局的 Theme 主题
- Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)
- Android应用的国际化、样式和主题、屏幕适配
- Android入门——样式主题和自定义属性资源
- Android apk反编译图解(得到程序的java源代码,图片、XML配置、语言资源等文件)
- Android apk反编译图解(得到程序的java源代码,图片、XML配置、语言资源等文件)
- Android中使用Xml内置解析器pull来解析Xml原始资源
- Android样式(style)和主题(theme)资源介绍-android学习之旅(五十六)
- android 学习随笔十九(对话框、样式、主题、国际化 )
- ant 编译android程序 执行build.xml文件到打包资源文件时候报错!提示找不到资源文件!