Android项目中资源文件的相关知识总结

1.drawable和mipmap的使用: 参考:https://www.jianshu.com/p/f7dc272b3469
a.Launcher图片(APP的图标)必须放到mipmap不同的目录下(mipmap-xxxhdpi、mipmap-xxhdpi(主流)、mipmap-xhdpi(主流)、mipmap-hdpi、mipmap-mdpi、mipmap-ldpi),Launcher会自动加载更加合适的密度的资源。
b.应用内使用到的图片资源,并不会因为你放在mipmap或者drawable目录而产生差异。单纯只是资源路径的差异R.drawable.xxx或者R.mipmap.xxx。(也可能在低版本系统中有差异)。
c.图片可以在主流的尺寸目录下保留一份或两份,其他尺寸自动适配即可,可以有效减小APK体积。(尽量保留高尺寸,由高到低图片缩放的失真效果不会特别明显,反而由低到高的扩放失真明显)
2.res目录和assets目录的区别: 两者的区别在于是否前者下所有的资源文件都会在R.java文件下生成对应的资源id(系统自动生成,只管用即可),而后者并不会,后者需要我们通过AssetManager以二进制流的形式来读取,一般存放一些大的文件,如音频、视频、Html、JSON等!

注:assets目录一般手动自建(as不会自动创建),与res目录同级。
3.style与theme的区别 参考:https://www.jb51.net/article/91634.htm
两者的区别是style应用于view中,而theme应用于application和activity中。
两者都定义在values/styles.xml中,都使用标签定义,theme一般继承自Theme.AppCompat(所以,一般我们会看到as自动生成的)
theme具体使用方法是找到AndroidManifest.xml配置application和具体activity的主题即可:android:theme="@style/AppTheme"
样式的一般处理方法,先生成一个view,AS中右键选择Refactor > Extract > Style,可将当前的view中的样式抽象出来,自动定义到styles.xml中,以复用。
关于继承,有显式继承和隐式继承两种写法,一般继承自系统采用显式继承(parent属性:parent="MyBox">),继承自定义样式采用隐式继承(父名称.子名称:)
4.资源文件中,那些-v24、-anydpi-v26、-w820dp、-en/-zh-rCN后缀的文件夹是干什么用的? 参考:https://blog.csdn.net/chy6575/article/details/51119840
android工程res目录下的资源文件夹(drawable,values,layout等)在屏幕适配方面的限定与适配方法,

命名方法与要求:

1) 命名不区分大小写;
【Android项目中资源文件的相关知识总结】2) 命名形式:资源名-属性1-属性2-属性3-属性4-属性5
-v*:表示适配Android API版本及以上,如-v24适配API 24及以上设备的专用资源
-w820dp:表示适配宽度
-en、-en-rUS、-zh-rCN:表示适配语言
5.点9文件有什么用?如何制作? 参考:https://www.uisdc.com/draw-9-patch-android、https://blog.csdn.net/zhaoqi2617/article/details/72883904
即 .9 ,是andriod平台的应用软件开发里的一种特殊的图片形式,文件扩展名为:.9.png,用于图片在横屏/竖屏切换过程中图片被拉伸后形状和内容不失真用的。一般用于局部颜色单一的背景图片素材。

在Android studio制作步骤是:将项目的.png图片放到资源文件夹drawable下面,然后右键则出现带有“create 9patch file~”的选项了,点击后会出现另一个让你选择保存9patch文件的目录和名称确认,这里直接默认就在drawable保存,名称也默认就是之前的.png图片变为.9.png图片就好了。然后就生成了这个.9.png图片的初始样本了,这个时候可以将之前的图片删掉了,不然编译的时候会报错“duplicate source”了。或者做好.9.png图片再删掉也可以。

    推荐阅读