首页 > 代码库 > Android之XML资源访问

Android之XML资源访问

颜色资源

<span style="font-size:18px;"><resources>
    <color name="red">#f00</color>
    <color name="green">#0f0</color>
    <color name="blue">#00f</color>
</resources></span>

尺寸资源

<span style="font-size:18px;"><resources>
    <dimen name="dp10">10dp</dimen>
    <dimen name="sp10">10sp</dimen>
</resources></span>

数组资源

<span style="font-size:18px;"><resources>
    <string-array name="stringarray">
        <item>Hello</item>
        <item>World</item>
    </string-array>
    
    <integer-array name="integerarray">
        <item>1</item>
        <item>2</item>
        <item>3</item>
    </integer-array>
</resources></span>

可以在ListView的布局文件中直接引用

<span style="white-space:pre">	</span><span style="font-size:18px;">android:entries="@array/stringarray"</span>


Drawable资源

使用九宫格工具修改图片

打开SDK下的tools文件夹里的draw9patch,拖入原图片



拖动四条边上的九宫格线,确定图片的缩放区域,Ctrl+S保存为.9.png格式

制作按钮的不同状态

res下新建drawable文件夹,新建Xml文件,选择selector标签

<span style="font-size:18px;"><selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/btn" android:state_pressed="false"></item>

</selector></span>


在Button下,设置背景

<span style="white-space:pre">	</span><span style="font-size:18px;">android:background="@drawable/btn_bg"</span>


样式资源

<span style="font-size:18px;">    <style name="myText">
        <item name="android:textSize">20pt</item>
        <item name="android:textColor">#00f</item>
    </style></span>

主题资源

使用系统自定义的主题

在application或activity标签下

<span style="white-space:pre">	</span><span style="font-size:18px;">android:theme="@android:style/Theme.Black"</span>


菜单资源

文件配置

res文件夹下menu文件夹下main.xml文件配置

<span style="font-size:18px;"><menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menuItem1"
        android:orderInCategory="100"
        android:title="AAA"/>
    <item
        android:id="@+id/menuItem2"
        android:icon="@drawable/ic_launcher"
        android:orderInCategory="100"
        android:title="BBB"/>

</menu></span>

调用方法

<span style="font-size:18px;">	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		getMenuInflater().inflate(R.menu.main, menu);
		return super.onCreateOptionsMenu(menu);
	}</span>

监听菜单事件

<span style="font-size:18px;">	@Override
	public boolean onOptionsItemSelected(MenuItem item) {

		switch (item.getItemId()) {
		case R.id.menuItem1:
			Toast.makeText(this, "menuItem1", Toast.LENGTH_SHORT).show();
			break;
		case R.id.menuItem2:
			Toast.makeText(this, "menuItem2", Toast.LENGTH_SHORT).show();
			break;
		default:
			break;
		}
		return super.onOptionsItemSelected(item);
	}</span>

原始XML文件解析

文件结构

<span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?>
<users>
    <user name="zhang" age="17"/>
    <user name="li" age="18"/>
</users></span>

解析过程

</pre><pre name="code" class="java"><span style="font-size:18px;">	XmlResourceParser parser=getResources().getXml(R.xml.users);
	try {
		while(parser.getEventType()!=XmlPullParser.END_DOCUMENT){
			if(parser.getEventType()==XmlResourceParser.START_TAG){
				if(parser.getName().equals("user")){
					String name=parser.getAttributeValue(null, "name");
					String age=parser.getAttributeValue(null, "age");
					System.out.println(String.format("名字:%s,年纪:%s", name,age));
				}
			}
			parser.next();
		}
	} catch (XmlPullParserException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}</span>