美文网首页
android 应用匹配最佳资源文件

android 应用匹配最佳资源文件

作者: 小川君 | 来源:发表于2017-10-12 12:38 被阅读0次

应用在运行是,在运行时,Android系统会根据当前的设备设置自动寻找合适的资源。为不同的设备提供不同的资源,主要是利用特殊命名的资源文件夹来实现的。

一、资源文件命名

对于一个资源文件,针对设备的不同,需要提供一整套的资源文件供程序运行时根据设备和运行条件(横屏或者竖屏、移动还是联通)的不同来选择合适的资源文件。资源文件必须名称相同地放置到合适的资源文件夹下面,而资源文件夹的命名至关重要。

Android工程res目录下资源文件的命名格式:
资源名-属性1-属性2-属性3-属性4
资源名的取值有:drawable, values, layout, anim, raw, menu, color, animator等各属性的位置顺序必须遵守优先级从高到低排列,否则编译不过。

以资源文件values为例,各属性按优先级从高到低的排序为:
values-mcc310-en-sw320dp-w720dp-h720dp-large-long-port-car-night-ldpi-notouch-keysexposed-nokeys-navexposed-nonav-v7;

属性说明:
values-mcc310(sim卡运营商)-en(语言)-sw320dp(屏幕最小宽度)-w720dp(屏幕最佳宽度)-h720dp(屏幕最佳高度)-large(屏幕尺寸)-long(屏幕长短边模式)-port(当前屏幕横竖屏显示模式)-car(dock模式)-night(白天或夜晚)-ldpi(屏幕最佳dpi)-notouch(触摸屏模类型)-keysexposed(键盘类型)-nokey(硬按键类型)-navexposed(方向键是否可用)-nonav(方向键类型)-v7(android版本)

注意:
1)屏幕的像素密度修饰符,'依据Android会选择最接近屏幕像素密度的一个文件',不会因为与设备配置不一样而被排除掉,
即使我们的设备现在是hdpi,但是drawable-port-ldpi/也不会因为限定符的原因被排除,因为在这个阶段,所有的
屏幕密度都被考虑进行适配通常来说,Android更倾向于缩小一个比较大的图片而不是放大一个比较小的图片。

![图片.png](https://img.haomeiwen.com/i2588358/0b932b225a82c04a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

2)根据屏幕尺寸(small, large等(已被淘汰))限定符选择资源时,依据'向下匹配原则'如果没有更好的匹配资源,
则系统将使用专为小于当前屏幕的屏幕而设计的资源(例如,如有必要,大尺寸屏幕将使用标准尺寸的屏幕资源)。
 但是,如果唯一可用的资源大于当前屏幕,则系统不会使用这些资源,并且如果没有其他资源与设备配置匹配,
应用将会崩溃(例如,如果所有布局资源均用 xlarge 限定符标记,但设备是标准尺寸的屏幕)

二、drawable 与mipmap的区别

引入mipmap的原因:在apk应用于手机时,系统会去选择对应的资源目录,有时启动图标ic_launcher会不合适,但是其他的资源目录已经被过滤掉了,这样导致了在手机显示上,启动图标不正确的现象。而mipmap可以保留着一个ic_launcher,而且也仅仅需要一个分辨率的icon,自动会缩放成其他分辨率的ic_launcher

将所有启动器图标放在 res/mipmap-[density]/ 文件夹中,而非 res/drawable-[density]/ 文件夹中。无论安装应用的设备屏幕分辨率如何,Android 系统都会将资源保留在这些密度特定的文件夹中,例如 mipmap-xxxhdpi。此 行为可让启动器应用为您的应用选择要显示在主 屏幕上的最佳分辨率图标。

相关文章

  • android 应用匹配最佳资源文件

    应用在运行是,在运行时,Android系统会根据当前的设备设置自动寻找合适的资源。为不同的设备提供不同的资源,主要...

  • 关于Android Resources你应该知道的细节

    1. Android资源文件简介 Android应用资源的作用 (1) Android项目中文件分类 在Andro...

  • Android 资源文件匹配

    一直以来对于系统选择资源文件的流程都模糊不清,每次定义资源的时候都战战兢兢,终于忍无可忍,无需再忍,决定掏出官方文...

  • Android dynamic framework 学习[1]

    Android dynamic framework 学习 @(深入理解OSGI 应用与最佳实践)[ 资源管理, j...

  • Android 资源加载与匹配

    Android 应用程序资源编译和打包之后就生成一个资源索引表文件 resources.arsc,这个应用程序资源...

  • Android魔幻之旅(一):应用基础知识

    本文内容: 应用组件启动组件 清单文件声明组件声明应用要求 应用资源 Android 应用采用 Java 编程语言...

  • Android基础05-Android资源访问

    一、资源访问:【掌握】 (一)、概念: Android中的资源是指可以在代码中使用的外部文件,这些文件作为应用...

  • 0.1 应用基础

    Android 应用采用 Java 编程语言编写代码,Android SDK 工具将代码(连同任何数据和资源文件)...

  • APK反编译

    一、APK 结构 Android 应用的 APK(Android Package)安装文件是一个包含所有代码和资源...

  • 创建 Android 库

    Android 库在结构上与 Android 应用模块相同。它可以提供构建应用所需的一切内容,包括源代码、资源文件...

网友评论

      本文标题:android 应用匹配最佳资源文件

      本文链接:https://www.haomeiwen.com/subject/eswzjxtx.html