随着AS版本及android系统的版本不断升级,新建项目的默认创建适配文件也由drawable-v21升级到了drawable-v24,这个文件与targetSdkVersion及手机android系统版本是什么关系呢?
- drawable-v21 适配5.0及以上手机资源文件
- drawable-v24 适配7.0及以上手机资源文件
- drawable-v21 drawable-v24可共存
两者只与手机的android版本有关,与targetSdkVersion无关
优先从等于或者临近手机android版本的的适配资源文件夹中找适配文件,如果找不到就去更低的适配资源文件中找,如果再找不到就在drawable中找通用的适配资源;如 手机版本是7.0,就会优先从24中找,如果找不到则看有没有其他版本的适配资源,如果有21,则从21中找,如果再找不到就去drawable中找;一般情况下至少drawable中存在一个适配资源
测试案例(控件选中的水波纹):
-
drawable-v24中放置一个ripple的xml文件,targetSdkVersion 为29的情况下运行在(29)10.0的手机上,控件选中的水波纹效果正常
-
drawable-v24中放置一个ripple的xml文件,targetSdkVersion 为23的情况下运行在(29)10.0的手机上,控件选中的水波纹效果正常
-
drawable-v24中放置一个ripple的xml文件,targetSdkVersion 为23的情况下运行在5.1.1的模拟器上,控件选中的水波纹效果没有效果
-
drawable-v24中放置一个ripple的xml文件,targetSdkVersion 为21的情况下运行在5.1.1的模拟器上,控件选中的水波纹效果没有效果
-
将drawable-v24改成drawable-v21,targetSdkVersion 为21或者23的情况下运行在5.1.1的模拟器上,控件选中的水波纹效果正常
项目中该使用哪个适配文件呢,具体还得根据市场需求来定;如果低版本手机不是自己app的目标用户或者说是主要用户,那么可以选择放弃低版本,选择高版本的drawable-v24;反之,则选择低版本,这样可以让更多的用户体验到产品应有的适配效果;或者更精准点,两者都适配,同时存在drawable-v21和drawable-v24
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/6218.html