2010年01月28日
在昨天的我初步弄清楚了怎样通过xml文件来设置控件的属性,主要是通过res文件夹内的attrs.xml及styles.xml两个xml文件来完成的。今天主要来做个小例子来验证一下这个过程。
Attrs.xml这个文件是用来定义控件属性的文件,结合下面例子来详细说明这个文件。
- <resources>
- <declare-styleable name="HwExControl">
<attr name="text" format="string" />
<attr name="title" format="string" />
<attr name="iconid" format="integer" />
<attr name="height" format="dimension" />
<attr name="width" format="dimension" />
<attr name="background" format="reference|color" />
</declare-styleable>
</resources>
<declare-styleable name="HwExControl">这行代码定义了控件的名称HwExControl;
<attr name="text" format="string" /> 这行代码定义了控件中一个属性,我不知道这个称为属性是否合适,它定义了一个字符串(format=”string”表明它是一个字符串)存在于这个控件中,有可能会显示在这个控件中,能不能显示要在java代码中予以控制或者另外在添加一个属性来控制是否显示。
下面几个就不一一介绍了,他们都是这个控件的属性。对于这些属性的format从我了解到的来看有float、string、reference、color、dimension等,其中有些format并不是Java中的基本类型,我现在还不太明白他们的用法,这个在以后的学习来补充说明。
设置完这个xml文件之后在相应的控件Java文件中需要编写如下代码来接收(不知道“接收”这个词用的是否准确^_^)xml文件设置的属性:
public void getHwExControlAttrs(Context context, AttributeSet attrs, int defStyle){
TypedArray a = context.obtainStyledAttributes(
attrs, R.styleable.HwExControl, defStyle, 0);
mTitle = a.getString(R.styleable.HwExControl_title);
mText = a.getString(R.styleable.HwExControl_text);
mIconID = a.getInt(R.styleable.HwExControl_iconid, 0);
mBackground = a.getDrawable(R.styleable.HwExControl_background);
}
在这段代码中有个对象a,这个是接收控件属性的对象,它是一个TypedArray类的对象,对于TypedArray类在sdk上是这样解释的:它是一个用来装载从obtainStyledAttributes或者obtainAttributes取回数据的数组容器。(Container for an array of values that were retrieved with obtainStyledAttributes(AttributeSet, int[], int, int) or obtainAttributes(AttributeSet, int[]).)。用这个装载完从xml文件里接收到的属性后通过 TypedArray类自带的一些方法就可以分离出这些属性了。
对于style.xml文件今天的了解还不够,明天将主要了解这个文件。
分享到:
相关推荐
下面,我们将详细解析Pom.xml文件的各个标签和它们的作用。 1. 父项目(Parent Project) 在Pom.xml文件中,我们可以定义父项目的信息,包括artifactId、groupId、version和relativePath等。父项目的信息将被继承...
本项目名为“天气预报 .xml文件解析”,其核心在于利用XML文件来存储天气预报数据,并通过编程手段进行解析,结合SQLite数据库展示和管理这些信息。 首先,我们要理解XML的基本结构。XML是一种自描述性的标记语言,...
haarcascade_frontalface_default.xml 和 haarcascade_eye.xml 文件是OpenCV库中用于人脸检测和眼睛检测的重要数据结构。 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,...
Android教程之AndroidManifest.xml文件 详细介绍及用法解析
settings.xml配置
解决Notepad++ Plugin Manager无法加载插件的方法。把PluginManagerPlugins.xml放在这个目录下C:\Users\你主机系统用户\AppData\Roaming\Notepad++\plugins\config 重新打开软件
在编程和自动化场景中,开发者可能会使用库或API,如Apache POI(处理Microsoft Office格式)和iText(处理PDF)来实现这个过程,并通过解析XML文件来定制转换行为。 总的来说,`license.xml`在Word到PDF转换中起到...
国内连接maven官方的仓库更新依赖,收集一些国内快速的maven仓库镜像以备用。 settings.xml配置好的国内私服,直接可以下载使用!
Maven原版settings.xml配置文件,根据个人需要,可以打开对应注释或替换相关阿里云镜像或远程仓库地址即可使用。
基于Java的POM.XML,如果用兴趣,可以下载下去参考一下
1. **读取Freemarker生成的文档**:Aspose能正确解析由Freemarker生成的.docx文件,即使它们包含了不标准的XML结构。 2. **修复文档结构**:一旦读取,Aspose可以识别并修复可能存在的XML结构错误,使其符合Office的...
hibernate.cfg.xml hibernate框架的配置文件
Android反编译工具是用来解析和反编译APK文件的,它可以将APK的二进制资源转换为可读的源代码和XML文件。Apktool是一款流行的Android反编译工具,它支持对APK进行拆解、修改和重新打包。通过Apktool,我们可以轻松地...
mysqlWorkbench 汉化
自己使用的Source Insight 4.0配置文件
在Java中,可以使用javax.xml.parsers.DocumentBuilderFactory类来创建DOM解析器。 ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory....
网络上很多的APN文件,看了许多,没有带电信参数的,花费一晚上的时间,通宵写成了这个,确切的说是改成了这个集成了中国电信相关参数的apns-conf.xml文件,借阅请说明出处,谢谢
本文将深入探讨使用C语言编写的XML文件解析源码,并讲解如何实现XML文件的基本操作,如查找、增加和删除节点。 在C语言中处理XML文件通常涉及到以下几个关键步骤: 1. **内存管理**:由于C语言没有内置的高级数据...
在Java开发中,`javax.xml.ws.Service` 是一个核心组件,属于Java API for XML Web Services (JAX-WS)的一部分,用于创建客户端和服务端的Web服务代理。报错通常表明缺少必要的依赖包,这可能会影响到程序的正常运行...