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文档对应的输入流
    • TypedArrayobtainTypedArray(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" />

更多相关文章

  1. Android(安卓)LsitView的实现
  2. Android(安卓)Studio报Element XXXX must be declared的解决方法
  3. Android知识点汇总以及常见面试题
  4. Parcelable和Parcel
  5. android 对dp单位的理解
  6. android studio一键生成快速开发实现语言国际化
  7. Android中获取资源的id和url方法总结
  8. Android通过URL获取网络数据
  9. listview 设置数组为空

随机推荐

  1. android中Json数据保存方式
  2. Android中获取系统的时间
  3. Android(安卓)TabWidget设计模板
  4. Android清空画布
  5. android————Button
  6. Android动态添加TextView
  7. Android的VideoView如何循环播放
  8. Android(安卓)support和Androidx库不能共
  9. android 关闭软键盘
  10. android获取手机电量