文档章节

Android xml资源文件中@、@android:type、@*、?、@+含义和区别

Y
 Y13
发布于 2016/05/19 10:48
字数 569
阅读 20
收藏 2

一.@代表引用资源

1.引用自定义资源。格式:@[package:]type/name

android:text="@string/hello"

 

2.引用系统资源。格式:@android :type/name

    android:textColor="@android :color/opaque_red"

  注意:其实@android:type/name是@[package:]type/name 的一个子类

二.@*代表引用系统的非public资源。格式:@*android:type/name

  系统资源定义分public和非public。public的声明在:

  <sdk_path>\platforms\android-8\data\res\values\public.xml

  @*android:type/name:可以调用系统定义的所有资源

  @android:type/name:只能够调用publi属性的资源。

  注意:没在public.xml中声明的资源是google不推荐使用的。

三.?代表引用主题属性

  另外一种资源值允许你引用当前主题中的属性的值。这个属性值只能在style资源和XML属性中使用;它允许你通过将它们改变为当前主题提供的标准变化来改变UI元素的外观,而不是提供具体的值。例如:

  android:textColor="?android:textDisabledColor" 

   注意,这和资源引用非常类似,除了我们使用一个"?"前缀代替了"@"。当你使用这个标记时,你就提供了属性资源的名称,它将会在主题中被查找,所以你不需要显示声明这个类型(如果声明,其形式就是?android:attr/android:textDisabledColor)。除了使用这个资源的标识符来查询主题中的值代替原始的资源,其命名语法和"@"形式一致:?[namespace:]type/name,这里类型可选。

 四.@+代表在创建或引用资源 。格式:@+type/name

    含义:”+”表示在R.java中名为type的内部类中添加一条记录。如"@+id/button"的含义是在R.java 文件中的id 这个静态内部类添加一条常量名为button。该常量就是该资源的标识符。如果标示符(包括系统资源)已经存在则表示引用该标示符。最常用的就是在定义资源ID中,例如:

 @+id/资源ID名         新建一个资源ID

 @id/资源ID名          应用现有已定义的资源ID,包括系统ID

 @android:id/资源ID名   引用系统ID,其等效于@id/资源ID名

 

 android:id="@+id/selectdlg"

 android:id="@android:id/text1"

 android:id="@id/button3"  

本文转载自:

共有 人打赏支持
上一篇: SendMessage
下一篇: android布局 parent
Y

Y13

粉丝 0
博文 30
码字总数 148304
作品 0
大连
高级程序员
私信 提问
【转】Android xml资源文件中@、@android:type、@*、?、@+含义和区别

一.@代表引用资源 1.引用自定义资源。格式:@[package:]type/name android:text="@string/hello" 2.引用系统资源。格式:@android:type/name android:textColor="@android:color/opaque_red......

mj4738
2011/12/27
0
1
android LinearLayout和RelativeLayout实现精确布局

先明确几个概念的区别: padding margin:都是边距的含义,关键问题得明白是什么相对什么的边距 padding:是控件的内容相对控件的边缘的边距. margin :是控件边缘相对父空间的边距 androi...

长平狐
2013/01/06
67
0
android LinearLayout和RelativeLayout实现精确布局

先明确几个概念的区别: padding margin:都是边距的含义,关键问题得明白是什么相对什么的边距 padding:是控件的内容相对控件的边缘的边距. margin :是控件边缘相对父空间的边距 androi...

鉴客
2012/03/09
252
0
android LinearLayout和RelativeLayout实现精确布局

先明确几个概念的区别: padding margin:都是边距的含义,关键问题得明白是什么相对什么的边距 padding:是控件的内容相对控件的边缘的边距. margin :是控件边缘相对父空间的边距 androi...

晨曦之光
2012/03/01
346
0
android LinearLayout和RelativeLayout实现精确布局

先明确几个概念的区别: padding margin:都是边距的含义,关键问题得明白是什么相对什么的边距 padding:是控件的内容相对控件的边缘的边距. margin :是控件边缘相对父空间的边距 androi...

鉴客
2011/12/03
616
0

没有更多内容

加载失败,请刷新页面

加载更多

教你React Native使用fetch实现图片上传

这篇文章主要介绍了详解react关于事件绑定this的四种方式,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 在react组件中,每个方...

前端攻城老湿
7分钟前
1
0
webpack+vuex+axios 跨域请求数据的示例

本篇文章主要介绍了webpack+vuex+axios 跨域请求数据,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 使用vue-li 构建 webpack项...

前端攻城小牛
12分钟前
1
0
基础编程题目集-6-10 阶乘计算升级版

本题要求实现打印非负整数阶乘,其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。 输入格式: 每个输入包含一个测试...

niithub
12分钟前
1
0
聊聊flink的FsStateBackend

序 本文主要研究一下flink的FsStateBackend StateBackend flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/StateBackend.java @PublicEvolvingpublic interface Sta......

go4it
41分钟前
1
0
webpack配置proxyTable时pathRewrite无效的解决方法

webpack配置接口地址代理 在项目开发中,接口联调的时候一般都是同域名下,且不存在跨域的情况下进行接口联调,但是当我们在本地启动服务器后,比如本地开发服务下是 http://localhost:8080 ...

前端小攻略
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部