Android中资源各种引用方式?,@,@*等等

这几天做系统开发涉及到actionbar的style修改,要从framework层改,不知道?android:attr/是从哪儿引用的属性,给开发带来了很大的困难

参考链接文章也可以看到,一般在开发中资源的引用分以下几种

1,引用自定义或者本包下的资源:格式:@[package:]type/name

举个例子:@drawable/filename,@string/stringitem,

2,引用系统资源(存储位置为frameworks/base/core/res/res):

在介绍对系统资源的引用时先介绍一下如何添加系统资源,便于大家理解对系统资源引用的两种方式

添加系统资源:

第一,与自定义资源类似,到系统资源目录下(目录如上所示)添加资源

第二,添加成功后如果想要让其他包使用(比如Bluetooth应用),需要将该资源id手动添加到public文件中去(这一步我以前一直以为是系统自动生成的,真是惭愧

)。不同的type有不同的id排序,这个你在添加前可以参考public中别人添加的相同type,在该type的id的基础上加1就是你的id

<public type="style" name="ThemeOverlay.Material.Dialog.Alert" id="0x010302d7" />
<public type="drawable" name="list_selector_holo_dark" id="0x010800b8"/>
<public type="string" name="usb_storage_removed" id="0x01040045" />

第三,接下来你就可以引用了,如果是在本包中引用,引用方式同1,如果是在其他包中引用,引用格式为:@android:type/name

但有些系统资源不是public资源但你又想引用怎么办?可以,格式为:@*android:type/name

综上所述可以看到对于系统资源的引用有两种方式

3,相信你见过有一些是这样用的

?android:attr/selectableItemBackground

这是什么意思呢?selectableItemBackgroud是一个主题属性,也就是item,这个item会在一个theme中去定义,如下所示

<item name="selectableItemBackground">@drawable/item_background_material</item>

他引用这个属性的意思就是,程序首先是找到该activity或者application引用的theme,包括theme的parent,找到theme后再去找该theme下的一个叫做selectableITEMBackground的item属性,这个属性对应的就是你所引用的资源

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏流媒体

C语言编译过程

预编译结果解释 # linenum filename flags 分别对应行号、文件、标识。 flag对应的含义

34620
来自专栏转载gongluck的CSDN博客

UNPv13:#第1章#简介

概述 ? TCP本身并不提供记录结束标志:如果应用程序需要确定记录的边界,它就要自己去实现,已有一些常用的方法可供选择。从TCP套接字读取数据时,我们总...

32790
来自专栏玄魂工作室

Python 黑帽编程 4.2 Sniffer之数据本地存储和加载

在上一节,我们完成了编写一个简易的Sniffer的第一步——数据捕获。 很多时候,我们需要将捕获的数据先保存到磁盘上,之后再使用工具或者自己编写代码来进行详细分...

31740
来自专栏Python小屋

详解Python项目开发时自定义模块中对象的导入和使用

背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象;2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将...

42350
来自专栏python学习之旅

Python笔记(十三):urllib模块

(一)      URL地址 URL地址组件 URL组件 说明 scheme 网络协议或下载方案 net_loc ...

31460
来自专栏游戏开发那些事

【Linux程序设计】之进程控制&守护进程

这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的。

22020
来自专栏喵了个咪的博客空间

phalapi-入门篇3(请求和返回)

#phalapi-入门篇3(请求和返回)# ? ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 这一小...

39350
来自专栏java 成神之路

jvm 性能调优工具之 jstack

42850
来自专栏开源优测

接口测试 23 requests基础入门二

概述 继续requests基础分享,本文主要分享以下内容: 请求头定制 POST请求 请求头定制示例 在requests中想要为请求添加自定义头信息,只需要简单...

30790
来自专栏爱撒谎的男孩

Struts2之动态调用

-在struts核心配置文件详解(action)中已经详细讲解了method的用法,使用这个方式可以指定Action类中的不同的方法映射请求,那么就完成了动态调...

35160

扫码关注云+社区

领取腾讯云代金券