drawable-v21 drawable-v24资源适配文件

随着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

猜你喜欢

转载自blog.csdn.net/nongminkouhao/article/details/107717872