热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Android中资源文件(非代码部分)的使用概览

Android中的资源是指非代码部分,指外部文件,本文详细介绍资源使用概览,需要了解的朋友可以参考下
Android中的资源访问
  Android中的资源是指非代码部分,指外部文件。
  assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取。
  res中的资源可以通过R资源类直接访问。
  R类是自动生成的,在该类中根据不同的资源类型生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标识。

1.在代码中使用资源文件
  在代码中访问资源文件,是通过R类中定义的资源文件类型和资源文件名称来访问的。
  具体格式为:
  R.资源文件类型.资源文件名称
  另外,除了访问用户自定义的资源文件,还可以访问系统中的资源文件。
  访问系统中的资源文件的格式为:
  android.R. 资源文件类型.资源文件名称

2.在其他资源文件中引用资源文件
  经常会在布局文件中引用图片、颜色资源、字符串资源和尺寸资源。
  在其他资源中引用资源的一般格式是:
  @[包名称:]资源类型/资源名称

使用颜色资源
  颜色值定义的开始时一个#号,后面是Alpha-RGB的格式。
  例如:
  #RGB
  #ARGB
  #RRGGBB
  #AARRGGBB
  引用资源格式:
  Java代码中:R.color.color_name
  XML文件中:@[package:]color/color_name
  使用时在res\values\目录下,定义一个colors.xml文件,里面存放颜色名字和颜色值的键值对。
  如:
代码如下:


#f00
#0000ff


  其他资源如字符串、尺寸都是类似的方法。

使用字符串资源
  创建字符串资源文件strings.xml.里面内容也是键值对
  在Java代码中引用字符串资源R.string.string_name
  可如下取得:
  String str = getString(R.string.string_name).toString();
  在xml文件中引用字符串资源:@[package:]string/string_name

使用尺寸资源
  尺寸资源被定义在res\values\dimens.xml文件中。
  Android中支持的尺寸单位:

单位表示

单位名称

说明

dip 

设备独立像素 

不同设备不同的显示效果,dip与屏幕密度有关 

px

像素

屏幕上的真实像素表示,不同设备不同显示屏显示效果相同

in

英尺

基于屏幕的物理尺寸

mm

毫米

基于屏幕的物理尺寸

pt

点(磅)

英尺的1/72

dp

和密度无关的像素

相对屏幕物理密度的抽象单位

sp

和精度无关的像素

和dp类似,与刻度无关的像素,主要处理字体大小


引用尺寸资源
  在Java代码中: R.dimen.dimen_name
  在xml文件中:@[package:]dimen/dimen_name

使用原始XML资源
  XML文件定义在工程的res\xml\目录下,通过Resources.getXML()方法来访问。
  获得原始XML文件的思路是,通过getResources().getXml()获得XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开始还是结尾、是某个标签的开始还是结尾,并通过一些获得属性的方法来遍历XML文件,从而访问XML文件的内容。

使用drawables资源
  drawable资源是一些图片或者颜色资源,主要用来绘制屏幕,通过Resources.getDrawable()方法获得。
  drawable资源分为三类:Bitmap File(位图文件)、Color Drawable(颜色)、Nine-Patch Image(九片图片)。
  Android中支持的位图文件有png、jpg和gif。
  引用位图资源的格式:
  Java代码中:R.drawable.file_name
  XML文件中:@[package:]drawable/file_name

使用布局(layout)资源
  布局资源是Android中最常用的一种资源,将屏幕中组件的布局方式定义在一个XML文件中,类似于Web中的HTML页面。
  布局文件位于res\layout\中,名称任意。Android通过LayoutInflater类将XML文件中的组件解析为可视化的视图组件。
  在Activity中,调用Activity.setContentView()方法,将布局文件设置为Activity的界面,使用findViewById()方法来得到布局中的组件。
  引用布局文件:
  Java代码中:R.layout.my_layout
  XML文件中:@[package:]layout/my_layout

使用菜单资源
  任何视图组件的创建方式都有两种:一种通过在布局文件中声明创建;另一种通过在代码中创建。
  Android中的菜单分为选项菜单、上下文菜单和子菜单,都可以在XML文件中声明定义,在代码中通过MenuInflater类使用。
  菜单资源文件也是XML文件,放在工程res\menu\目录下。通过R.menu.my_menu的方式来引用。
  典型菜单资源文件的结构:根元素,在根元素里会嵌套子元素,元素中也可嵌套形成子菜单。
  时间和精力有限,不能对每一个类型都做详细的例子研究,只好在实际的应用中综合起来再慢慢体会了。加油!
推荐阅读
  • 国内BI工具迎战国际巨头Tableau,稳步崛起
    尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 本文介绍了在Windows环境下使用pydoc工具的方法,并详细解释了如何通过命令行和浏览器查看Python内置函数的文档。此外,还提供了关于raw_input和open函数的具体用法和功能说明。 ... [详细]
author-avatar
手机用户2502939421
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有