• Android应用资源


    前言:

    1.统揽Android应用,发现android应用由:资源,java文件,布局文件(xml)文件组成,完美的业务逻辑靠java文件,完美的用户界面靠的是布局文件还有资源文件,android在管理资源上独具一格,传统方式是一般都是零散定义变量,这种情况导致在以后的维护中,必须到处寻找变量,了解到这种弊端后,有经验的程序员就会把变量定义到一个专门的变量类中,方便以后的维护,android的资源管理也查不到哪里去(想想google公司吧,能成为全球瞩目的IT公司,没两把刷子也不可能),android允许各种资源定义在res的value目录下(color,string,array,menu etc.)

    【assets目录也是允许放资源文件的,唯一的区别是,res下的资源会在R.Java文件中生成对应的资源索引,应用程序可以通过R.Java文件访问资源文件,如果要访问assets下的资源文件,可以通过Context类的AssetManager获取资源文件】,也就是说,android应用中的资源其实有两种存在方式:一.原生态资源(主要保存在Assets下);二.应用资源(可以通过R类直接访问,主要保存在res下)

    一.资源存储方式

    (以下文件夹在创建的应用的时候有些并没有自动创建,需要我们手动创建)

    /res/animator/  --------主要存放属性动画的xml文件

    /res/anim/---------------主要存放补间动画的xml文件

    /res/color/---------------主要存放颜色xml文件

    /res/drawable----------主要存放位图文件

    /res/layout/--------------主要存放布局xml文件

    /res/menu/------------  主要存放菜单xml文件

    /res/raw/----------------主要存放音频文件(也是原生态文件哦)

    /res/values/------------存放各种类型的简单值(color、string、array、style、dimen etc.)

    //------------------------------------------------------------------------------------------------------------------------------------------------------

    二.几种比较重要的资源

    StateListDrawable资源

    stateListDrawable主要用于组织多个Drawable对象,通过它,我们可以自定一个控件在不同状态下的表现形态

    stateListDrawable支持的状态如下:

    android:state_active     激活状态

    android:state_checkable  可勾选状态

    android:state_checked  勾选中状态

    android:state_enabled  可用状态

    android:state_first 开始状态

    android:state_focused 焦点状态

    android:state_last  结束状态

    android:state_middle中间状态

    android:pressed按下状态

    android:selected被选中状态

    android:state_window_focused  得到窗口焦点状态

    //--------------------------------------------------------------------------------

    layerDrawable 资源

    layerDrawable的根元素是<layer-list />,该元素可以指定以下属性:

    android:drawable  指定drawable对象

    android:id  指定Drawable对象要画在哪里

    android:button/top/left/right:指定drawable对象所画的位置

    //--------------------------------------------------------------------------------------

    shapeDrawable资源

    根元素:<shape />

    指定元素:android:shape=["rectangle"|"oval"|"line|"ring""]

    //-------------------------------------------------------------------------------------

    clipDrawable  资源(截取)

    根元素:<clip  />

    指定属性:android:drawable 指定drawable对象

                        android;clipOrientation  截取方向  水平还是垂直

                        android;gravity   截取的对齐方式

    clipdrawable对象的setLevel(level)方法,当level=0,截取为空,当level=10000,截取整张图

    //---------------------------------------------------------------------------------------

  • 相关阅读:
    12个国外优秀.Net开源项目
    CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]
    秋色园QBlog V2.5 后台管理系统源码发布下载
    秋色园QBlog技术原理解析:认识整站处理流程(二)
    CYQ.Data 数据框架 加快开源速度 发布V1.5.5版本源码
    秋色园[CYQ.Data]开源团队寻人
    秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十)
    CYQ.Data 数据框架 性能评测
    框架设计:实现数据的按需更新与插入的改进
    秋色园QBlog技术原理解析:Module之基类生命周期页面加载(七)
  • 原文地址:https://www.cnblogs.com/IntelligentBrain/p/5111285.html
Copyright © 2020-2023  润新知