1 res资源文件夹
res目录
assets目录
两者的区别在于:
- res目录下所有的资源文件都会在R.java文件下生成对应的资源id,而assets目录并不会;
- res目录我们可以直接通过资源id访问到对应的资源;而assets目录则需要我们通过AssetManager以二进制流的形式来读取!
1 图片资源
- drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
- mipmap-hdpi:高分辨率,一般我们把图片丢这里
- mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧
mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现
2 布局资源:
layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹!
3 菜单资源:
- menu:在以前有物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多,菜单项相关的资源xml可在这里编写,不知道谷歌会不会出新的东西来替代菜单了~
4 values目录
- demens.xml:定义尺寸资源
- string.xml:定义字符串资源
- styles.xml:定义样式资源
- colors.xml:定义颜色资源
- arrays.xml:定义数组资源
- attrs.xml:自定义控件时用的较多,自定义控件的属性!
5 raw目录
raw目录:用于存放各种原生资源(音频,视频,一些XML文件等),可以通过openRawResource(int id)来获得资源的二进制流!其实和Assets差不多,不过这里面的资源会在R文件那里生成一个资源id而已
6 动画目录
动画有两种:属性动画和补间动画:
- animator:存放属性动画的XML文件
- anim:存放补间动画的XML文件
————————————————
1 建立array.xml文件
首先在res/values/ 文件夹创建新文件array.xml
注意:文件名并不是一定要为array.xml,这样写只是一个约定,安卓控件查找都是通过R文件的资源id实现的。
2 用法
2.1 用于单纯的表示一组字符串 string-array
<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="home_service_title"><item >Elder</item><item >Utiluties</item><item >Hosl&Cli</item> <!-- 特殊字符要转义--><item> Passport</item></string-array>
</resources>
通过String[] titles =getResources().getStringArray(R.array.home_service_title);就可以会的含有文件里定义的所有数组元素.
2.2 用于单纯的表示一组数字 integer-array
<?xml version="1.0" encoding="utf-8"?>
<resources><integer-array name="home_service_number"><item >1</item><item >2</item><item >3</item><item >4</item></integer-array>
</resources>
通过int[] numbers =getResources().getIntArray(R.array.home_service_title);就可以会的含有文件里定义的所有数组元素.
2.3 用来表示一组图片位置的引用integer-array
<?xml version="1.0" encoding="utf-8"?>
<resources><integer-array name="home_service_image"><item >@mipmap/u16</item><item >@mipmap/u16</item><item >@mipmap/u21</item><item >@mipmap/u16</item></integer-array>
</resources>
通过代码:
TypedArray mTypedArray = getResources().obtainTypedArray(R.array.home_service_image);
for (int i = 0; i <getResources().getIntArray(R.array.home_service_image).length; i++) {int imageId=mTypedArray.getResourceId(i, R.mipmap.u23);//第一个参数为 :所取图片在数组中的索引,第二个参数为:未找到时,返回的默认值id。
}
mTypedArray.recycle();//用完记得要recycleimageView.setImageResource(imageId);
array文件存储极为灵活,同时也可以用来作为二维数组的引用。
getResources().getStringArray(R.array.name);//获得String[]getResources().getIntArray(R.array.name);//获得int[]TypedArray mTypedArray = getResources().obtainTypedArray(R.array.home_service_image);//获得任意类型mTypedArray. mTypedArray.getResourceId(int index, int defValue);//获取R.array.home_service_image)里index索引下的对象mTypedArray.recycle();//mTypedArray用完记得要recycle
转载链接
https://blog.csdn.net/abfdada/article/details/52127414