加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

样式、主题、原始XML资源、Android程序国际化、Menu资源

发布时间:2020-12-16 09:37:11 所属栏目:百科 来源:网络整理
导读:样式资源主要用于对组件的显示样式进行控制,例如,改变文本框显示文字的大小和颜色等。一般放在res/values目录下,根元素是resources/resources,使用style/style标记定义样式,name属性指定样式的名称,item/item标记来定义格式项。 style name="basic" ite

样式资源主要用于对组件的显示样式进行控制,例如,改变文本框显示文字的大小和颜色等。一般放在res/values目录下,根元素是<resources></resources>,使用<style></style>标记定义样式,name属性指定样式的名称,<item></item>标记来定义格式项。

    <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();
		}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读