Android 资源

  1. Android资源分两类:
    • 无法通过R清单类访问的原生资源,保存在assets目录下,R资源类的路径:..\build\generated\source\r\debug\工程名
    • 可以通过R清单类访问的原生资源,保存在res目录下
  2. Resources类:资源管理类
    • Context.getResources()方法获取Resources对象
    • Context.getAssets()获取访问/assets目的资源的AssetManager对象
    • getXxx(int id):根据资源Id获取实际的资源
    • XmlResourceParser getXml:获取xml文档,返回XmlPullParser解析器
    • InputStream openRawResource:获取xml文档对应的输入流
    • TypedArray obtainTypedArray(int id):根据资源文件中普通数组资源的名称来获取实际的普通数组,即<Resources>元素中包含多个类型数组时,可以先用数组名获取TypedArray,在调用TypedArray.getXxx()获取索引值
  3. Xml中访问资源的方法:@[<package_name>:]<resource_type>/<resource_name>,如
    <EditText android:name="@string/hello">
  4. 字符串,整型,颜色,数组,布尔型,style,theme,dimen,attr等都放在/res/values路径下,这些资源文件的根元素都是<resources>元素
  5. Android不推荐在代码中定义数组,而是使用资源文件定义数组,定义数组时array.xml中的根元素是<resources>,该元素内包含三种子元素:
    • <array>:定义普通类型的数组
    • <string-array>:定义字符串数组
    • <integer-array>定义整数数组
  6. Drawable: 不仅图片可以作为Drawable资源,xml文件也可以作为Drawable资源,只要xml文件可以被编译为Drawable子类对象.
    • StateListDrawable资源:用于组织多个Drawable对象,定义StateListDrawable对象的xml文件的根元素是<selector>,该元素包含多个<item>元素,item元素的属性有
      • android:color或者android:drawable:指定颜色或者Drawable对象
      • android:state_xxx:指定一个特定的状态,可以在不同不同state时 为控件设定不同的Drawable对象
    • LayerDrawable资源:也可以包含Drawable数组,定义LayerDrawable对象的xml文件的根元素是<layer-list>,系统会按照Drawable对象的数组顺序来绘制他们,索引最大的在最上方,该元素可以包含多个<item>元素,item元素可以指定如下属性:
      • android:drawable:作为LayerDrawable元素之一的Drawable对象
      • android:id:为drawable对象指定一个标识
      • android:buttom\top\left\button:指定一个长度值,将Drawable对象绘制到目标组件的指定位置
    • ShapeDrawable资源:用于定义一个基本的几何图形,定义ShapeDrawable的xml文件的根元素是<shape>元素,该元素可以指定如下属性:
      • android:shape=["rectangle"|"oval"|"line"|"ring"]:指定定义哪些类型的集合图形
    • ClipDrawable资源:代表从其他位图上截取的一个图片片段,在xml文件中根元素为<clip>,可以指定的属性如下:
      • android:drawable:截取的源Drawable对象
      • android:clipOrientation:指定截取方向,可以设置水平或竖直
      • android:gravity:指定截取时的对齐方向
    • AnimationDrawable资源:代表一个动画,在xml文件中跟元素为<set>
  7. 样式资源文件的根元素是<resources>元素,元素内包含多个<style>子元素,每个style元素包含如下两个属性。style元素可以设置view.styele属性值
    • name:指定样式的名称
    • parent:指定该样式所继承的父样式
  8. 主题资源文件的根元素是<resource>元素,但多数时候在<application>元素中,通过android:theme配置主题,元素内包含多个<style>子元素,主题与样式的区别是:
    • 主题不能作用于单个的View组件,主题应该对整个应用中的所有Activity起作用,或者对指定的Activity起作用
    • 主题定义的格式应该是改变窗口外观的格式,如窗口标题,窗口边框等
  9. 属性资源:如果用户开发的自定义View组件也需要指定属性,就需要属性资源文件,属性文件所定义的属性到底起什么作用,取决于自定义组件代码的实现。属性资源文件的根元素也是<resources>,包含两个子元素,Android会自动生成R.styleable的资源类
    • <attr>:定义一个属性
    • <declare-styleable>:定义一个styleable对象,每个styleable对象就是一组attr属性的集合
  10. Inset drawable:定义在xml中,以指定间距插入一个drawable对象,常用与设置View的background,使background小于View的边界,语法如下:

    <inset
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/drawable_resource"
        android:insetTop="dimension"
        android:insetRight="dimension"
        android:insetBottom="dimension"
        android:insetLeft="dimension" />
时间: 2024-10-24 02:11:31

Android 资源的相关文章

〖Android〗依据资源信息,Mock Android资源

1 #!/bin/bash - 2 #=============================================================================== 3 # 4 # FILE: mock_res.sh 5 # 6 # USAGE: ./mock_res.sh 7 # 8 # DESCRIPTION: 9 # 10 # OPTIONS: --- 11 # REQUIREMENTS: --- 12 # BUGS: --- 13 # NOTES: ---

Android -- 资源使用和总结经验分享

颜色资源                                                                                       颜色XML文件格式 <?xml version="1.0" encoding="utf-8"?> <resources> //resources根元素 <color name="" >#000000</color> //

Android资源文件简介

Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, 资源文件; -- 界面布局文件 : 在res/layout目录下定义, 用于定义Android中界面的显示样式; -- Java源码文件 : Android程序的逻辑实现, 程序主体; -- 资源文件 : 各种XML文件, 可以定义图片等资源, 以及各种图片, 音频, 视频, 3d模型等资源; (2)

Android资源文件之创建与访问

资料来源于官方api文档 Android资源文件之创建与访问 Android适配之创建别名资源 如果你想将某一资源用于多种设备配置(但是不想作为默认资源提供), 则无需将同一资源放入多个备用资源目录中.相反,可以(在某些情况下)创建备用资源,充当保存在默认资源目录下的资源的别名. 注: 并非所有资源都会提供相应的机制让你创建指向其他资源的别名.特别是, xml/目录中的动画资源.菜单资源.原始资源以及其他未指定的资源均不提供此功能. 例如,加入你有有一个应用图片icon.jpg, 并且需要不同区

从Android资源角度谈Android代码内存优化

原文链接:http://www.codeceo.com/article/android-resource-android-mem.html 这篇文章主要介绍在实际Android应用程序的开发中,容易导致内存泄露的一些情况.开发人员如果在进行代码编写之前就有内存泄露方面的基础知 识,那么写出来的代码会强壮许多,写这篇文章也是这个初衷.本文从Android开发中的资源使用情况入手,介绍了如何在Bitmap.数据库查询.9- patch.过渡绘制等方面优化内存的使用. Android资源优化 1. B

Android资源管理框架(Asset Manager)简介和学习计划

Android该应用程序包括两个部分组成的:代码和资源. 资源主要是与UI相关的东西,例如UI布局.和其他字符串和照片.代码和资源可以使独立的应用程序来组织的实际需求的基础上,在执行的时候UI.,就能够支持不同的UI布局.这样的特性使得应用程序在执行时能够适应不同的屏幕大小和密度.以及不同的国家和语言等. 在本文中.我们就简要介绍Android的资源管理框架.以及制定学习计划. 在软件开发中.说到代码与资源分离.最easy想到的可能就是Web开发了. 在Web开发中,我们通常会通过CSS文件来描

android资源目录---assets与res/raw区别

android资源目录---assets与res/raw的不同 Android 2011-05-24 14:40:21 阅读20 评论0   字号:大中小 订阅 assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中.与res/raw不同点在于,ASSETS支持任意深度的子目录.这些文件不会生成任何资源ID,必须使用/assets开始(不包含它)的相对路径名. res:用于存放应用程序的资源(如图标.GUI布局等),将被打包到编译后的Java中.不支持深度子目录 res/menu:

Android资源之图像资源(淡入淡出、嵌入)

今天把图像资源剩余的几个知识梳理一下.淡入淡出资源同图像状态和图像级别资源一样可以切换两个图像(目前只支持两个图像的切换),并且使这两个图像以淡入淡出效果进行切换.如上一篇博文介绍的开关电灯一样,如果加上淡入淡出效果会更好. 下面在res/drawable目录中建立一个cross_fade.xml文件,该文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <!-- transition标签中只能有两个ite

美团Android资源混淆保护实践

前言 Android应用中的APK安全性一直遭人诟病,市面上充斥着各种被破解或者汉化的应用,破解者可以非常简单的通过破解工具就能对一个APK进行反编译.破解.汉化等等,这样就可以修改原有代码的逻辑.添加新代码.添加或修改资源.或者更有甚者植入病毒等等,从而破坏原有APK的安全和用户体验,最终伤害到用户和原有的开发者. 而事物都是有两方面的,有矛就有盾,针对Android应用安全的各种方案应运而生,大家比较熟悉一般是各类加壳加固的工具,我们可以使用这些工具来保护我们的APK,加壳加固是另外一个话题