android资源

刚刚开始接触android的时候,就觉得android的资源访问比较简单,在使用资源的时候,并不像javaweb项目那般,总而言之,android在资源访问这块做的还是很好的。很容易让一个新手入门。但是我们在做APP的时候,有的时候需要考虑的并不仅仅只是一种设备,我们的app需要去适配不同的手机机型,还有可能是平板,android的设备数不胜数,我们不可能为每一个设备都写一个不同的布局或者控件什么的。接下来,我参考了google android开发网上的内容简单阐述一下自己的理解。

android不同的资源目录

android资源_第1张图片
在创建一个项目之后。就会自动创建的资源目录
- drawable 主要是图片等的资源,当然也可以存放xml文件等
- layout 主要是存放APP的界面布局文件
- mipmap 主要是存放启动加载的图标图片
- values 存放字符串 颜色 尺寸 风格的资源文件
除了上面这些默认生成的目录之外,android还有很多自定义的目录,比如menu菜单目录,anim动画资源目录,animator属性动画目录,raw主要用来存放一些原始文件,该目录下面的资源不会被编译,还有于和raw有着类似功能的assets,这个文件夹也是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。

android适配不同的手机或者设备

android会提供备用资源用来支持不同的设备,可以试想一下,即使是同一个设备如果即将屏幕横过来后,你也希望看到和把屏幕竖起来不一样的效果,我们不可能在屏幕横过来后,还是利用原来的布局。这样原来的布局由于长度和宽度的变化,也会变形。很容易影响美感。android这个时候一般是在建立一个布局文件,将文件放在layout-land目录下面,-land就是andoid识别横屏文件的资源限定符。除此之外,我们的app如果做到国际化的话还需要考虑的不同的国家使用不同的语言的问题等等。android提供了一系列的资源限定符。如下表:
android资源_第2张图片
android资源_第3张图片
以上是我从googl开发者上面的截的图,还有部分没有截完,这里着重说明思路,abdroid在为设备找适配资源的时候会按照上面的表格上面的定义的限定符依次往下查找,android 也可以接受为单组资源加上多个限定符,但是限定符的定义顺序一定要按照上面表格的顺序。

访问资源

android代码访问资源,如果是在res目录下面的,都可以使用R文件来直接访问,R文件是系统为你定义的资源生成一个ID,一般来说R 文件是不可以修改的。一般访问资源的代码如下:

ImageView imageView = (ImageView) findViewById(R.id.myimageview);
imageView.setImageResource(R.drawable.myimage);

如果是asset目录下面的文件访问,一般都是借助AssetManager工具类来访问。

你可能感兴趣的:(android资源)