zoukankan      html  css  js  c++  java
  • Android 资源

    1. Android资源分两类:
      • 无法通过R清单类访问的原生资源,保存在assets目录下,R资源类的路径:..uildgeneratedsource 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 opleftutton:指定一个长度值,将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" />
     
     
             

     

  • 相关阅读:
    [Tutorial] How to check and kill running processes in Ubuntu
    [Tutorial] Getting started with Gazebo in ROS
    Linux基础命令
    Linux安装系统
    vue 前后端数据交互问题解决
    如何在cmd中启动MongoDB服务器和客户端
    selenuim模块的使用 解析库
    beautifhulsoup4的使用
    浅谈scrapy框架安装使用
    自动登录 点赞 评论 抽屉网
  • 原文地址:https://www.cnblogs.com/phenixyu/p/3969157.html
Copyright © 2011-2022 走看看