res目录
assets目录
两者的区别在于:
- drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
- mipmap-hdpi:高分辨率,一般我们把图片丢这里
- mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧
mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现
layout:该目录下存放的就是我们的布局文件,另外在一些特定的机型上,我们做屏幕适配,比如480*320这样的手机,我们会另外创建一套布局,就行:layout-480x320这样的文件夹!
- menu:在以前有物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多,菜单项相关的资源xml可在这里编写,不知道谷歌会不会出新的东西来替代菜单了~
- demens.xml:定义尺寸资源
- string.xml:定义字符串资源
- styles.xml:定义样式资源
- colors.xml:定义颜色资源
- arrays.xml:定义数组资源
- attrs.xml:自定义控件时用的较多,自定义控件的属性!
raw目录:用于存放各种原生资源(音频,视频,一些XML文件等),可以通过openRawResource(int id)来获得资源的二进制流!其实和Assets差不多,不过这里面的资源会在R文件那里生成一个资源id而已
动画有两种:属性动画和补间动画:
- animator:存放属性动画的XML文件
- anim:存放补间动画的XML文件
————————————————
首先在res/values/ 文件夹创建新文件array.xml
注意:文件名并不是一定要为array.xml,这样写只是一个约定,安卓控件查找都是通过R文件的资源id实现的。
<?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);就可以会的含有文件里定义的所有数组元素.
<?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);就可以会的含有文件里定义的所有数组元素.
<?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();//用完记得要recycle
imageView.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