Android基础之二:资源文件

  • 应用程序资源:
    • 应用程序资源是应用开发中任何地方都可以访问的一些资源,存储在res文件夹中
    • 子文件夹:
      • drawable:分为drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xdpi四个不同分辨率的图片资源文件夹,分别为没种分辨率设备进行适配使用
      • layout:布局资源文件夹,存储应用中所有的布局文件
      • values:存储所有常用值资源,包括strings.xml,arrays.xml,dimens.xml,style.xml,color.xml
      • menu:存储菜单资源文件
      • anim:存放视图动画资源文件
      • animator:存放属性动画资源文件
      • xml:存放xml文件资源,例如SharedPreferences.xml
  • 开发中尽量实现完全的代码与资源分离,便于维护、更新和管理,同时资源与代码分离能够实现多语言开发,只需要修改资源文件中的语言即可,程序不用发生任何改动
  • drawable资源:
    • drawable文件夹下一般都存放png图片,.9png在Android能够高清晰显示,一些动画图片如jpg也可以存放在其中,但是其在显示的时候如果不进行动态处理,那么最终只显示为静态图片
    • 帧动画xml文件也放在该文件夹下,帧动画实际上就是没过一段时间显示一张图片来实现动画效果
    • 在xml中使用drawable资源:@drawable/a,使用Android SDK自带的drawable资源:@android:drawable/a
    • 在代码中访问drawable资源:
      Drawable drawable=context.getResources().getDrawable(R.drawable.back6);
    • 代码中访问帧动画资源:
      AnimationDrawable animationDrawable= (AnimationDrawable) context.getResources().getDrawable(R.drawable.logo);
  • layout资源:
    • 存放所有布局文件资源,包括Activity布局多用文件,Fragment布局所用文件,View布局所用文件,ListView布局所用文件等所有View的可视化文件
    • 不建议使用代码动态创建layout来组合View显示,最好遵守代码与资源分开原则,便于维护与修改
    • 布局资源中使用其他资源:
      • 本地资源:@style/.. @string/.. @drawable/.. 等
      • Android SDK资源:@android:style/.. @android:string/..等
    • 一般其他资源文件中不能引用layout资源,但是layout中可以使用,例如viewStub与include标签可以实现布局文件的复用,其中layout属性指向引用布局资源
    • 代码中使用布局资源:LayoutInflater
      • 实例化LayoutInflater三种方法:
      • LayoutInflater layoutInflater=LayoutInflater.from(context);
        LayoutInflater layoutInflater= (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        LayoutInflater layoutInflater= context.getLayoutInflater();
      • 通过LayoutInflater实例将layout文件变成view:
      • layoutInflater.inflate(R.layout.content,null,false);
  • values文件夹
    • values文件夹中存放简单的资源,如string资源文件,dimen资源文件,style资源文件,color资源文件,array资源文件等
    • 在其他资源中使用@type/..
    • 在代码中使用:
      • 获取字符串:context.getResources().getText(..);
      • 获取dimen:context.getResources().getDimension(..);
      • 获取color:context.getResources().getColor(..);
      • 获取array:context.getResources().getStringArray(..);
      • 获取Integer:context.getResources().getInteger(..);
      • 等等
    • 获取Android SDK中的values资源
      • 主要是字符串资源:context.getText(..);
  • menu文件夹
    • 用于存放菜单结构xml文件
    • Android基础之菜单中详细介绍
  • anim文件夹
    • 存放视图动画xml
    • 代码中获取anim
      • 通过AnimationUtils类来获取
      • AnimationUtils.loadAnimation(context,id);
      • 通过资源管理器getAnimation方法获取
      • getResources().getAnimation(R.anim.);
    • Android基础之动画中详细介绍
  • animator文件夹
    • 存放属性动画xml
    • 代码中使用
      • 通过AnimatorInflater类来获取
      • Animator a=AnimatorInflater.loadAnimator(MyActivity.this,R.animator.);
    • 具体使用在Android基础之动画中详细介绍
  • xml文件夹
    • 存放xml文件,其中可以是xml配置文件,SharedPreferences xml文件
    • 主要用于实现动态配置与可持续化存储
    • 与XML解析器和Dom解析器结合使用
    • 具体使用在Android基础之XML&Dom解析中介绍
  • 在布局资源中使用当前主题的资源,例如字体颜色等:
android:textColor="?android:textColor"
  • Android 中动画分为三种
    • 视图动画:anim
    • 属性动画:animator
    • 帧动画:AnimationDrawable
  • Android颜色值
    • #RGB 三位16进制,例如#00F
    • #RRGGBB 六位16进制,例如#7700FF
    • #ARGB 四位含透明度的颜色值,例如#F00F
    • #AARRGGBB 八位含透明度的颜色值,例如#7700FF00
  • Android尺寸
    • px:屏幕像素
    • in:物理英寸
    • pt:物理点
    • mm:物理毫米
    • dp:非密度制约像素,常用于设置宽高,边距
    • sp:缩放比例无关的像素,常用于设置字体大小
原文地址:https://www.cnblogs.com/xl-xlg/p/5026686.html