首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android drawable微技巧,你所不知道drawable那些细节

好像有挺久时间没更新博客了,最近为了准备下一个系列博客,也是花了很长时间研读源码。...很遗憾是,下一个系列博客可能还要再过一段时间才能写出来,那么为了不至于让大家太久,今天就给大家更新一篇单篇文章,讲一讲Android drawable方面的微技巧。...怎么会有这么mipmap开头文件夹,而且它们命名规则和drawable文件夹很相似,也是hdpimdpixhdpi等等,并且里面还真是放图片,难道Android项目中放置图片位置已经改了?...没错,这个就是现实情况,那么在这种情况下,我们应该将仅有的这一套图片资源放在哪个密度文件夹下呢?...那么经过上面一系列分析,答案自然也就出来了,图片资源应该尽量放在高密度文件夹下,这样可以节省图片内存开支,而UI在设计图片时候也应该尽量面向高密度屏幕设备来进行设计。

2.3K80

Android 基本常识

ldpi: 屏幕密度为120手机设备  mdpi: 屏幕密度为160手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px)  hdpi: 屏幕密度为240手机设备  xhdpi...: 屏幕密度为320手机设备  xxhdpi:屏幕密度为480手机设备 如果是320x240切图,则应该放在drawable-ldpi目录下。...如果是480x320切图,则应该放在drawable-mdpi目录下。...如果是800x480切图,则应该放入drawable-hdpi目录下,  如果是1280x720切图,则应该放在drawable-xhdpi目录下。...android手机先根据当前分辨率选择最近一个文件夹读取,比如你可以把1080P放在hdpi,那么高分辨率手机先读hdpi这里面的,没有就找mdpi,依次类推。

66140
您找到你想要的搜索结果了吗?
是的
没有找到

Android图片相关

Drawable - 作为Android平下通用图形对象,它可以装载常用格式图像,比如GIF、PNG、JPG,当然也支持BMP,当然还提供一些高级可视化对象,比如渐变、图形。...大部分人都把图片放在drawablemdpi。 在分辨率低于480*800时把图片放在drawablemdpi是不会有什么影响,但是当分辨率为420*800或高于它时就会出问题了。...比如手机屏幕大小为420*800如果你将图片放在drawablemdpi,那么你就要准备一张340*525分辨率图片。...layout-640×360 根据屏幕尺寸 layout-xhdpi 根据屏幕尺寸 layout-xhdpi-v19 根据屏幕尺寸和sdk版本 2)hdpimdpi、ldpi 在之前版本,只有一个...drawable,而2.1版本中有drawable-mdpidrawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

70130

Android图片大小和屏幕密度关系讲解

Android手机适配是非常让人头疼一件事,尤其是图片,android为了做到是适配提供了很多文件夹来存放不同大小图片,比如:drawable-ldpi、drawable-mdpidrawable-hdpi...、drawable-xhdpidrawable-xxhdpi,其实同一张内容图片放到上面不同文件夹是有区别的,可能你会问:如果在上述各个文件夹中都放置一张内容相同,尺寸不同图片,那么系统会选择加载哪一张图片呢...ldpi: 屏幕密度为120手机设备 mdpi: 屏幕密度为160手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px) hdpi: 屏幕密度为240手机设备 xhdpi...图片放在drawable,等同于放在drawable-mdpi,原因为:drawable目录不具有屏幕密度特性,所以采用基准值,即mdpi 图片放在某个特定drawable,比如drawable-hdpi...,如果设备屏幕密度高于当前drawable目录所代表密度,则图片会被放大,否则会被缩小,放大或缩小比例 = 设备屏幕密度 / drawable目录所代表屏幕密度 为了更全面的适配所有设备,我们应该提供一套针对主流屏幕密度图片

1K60

Android设计 - 图标设计概述(Iconography)

但是你可以在所有的设备上通过为每个图标提供尺寸 来为你图标提供更好视觉效果。当你app运行时,安卓检查设备屏幕特性并且加载适当指定密度你app资源文件。...注意: 安卓也支持 低密度(low-density LDPI),但是一般情况下不要以这个尺寸创建自定义资源,因为会有效向下缩放 1/2 倍 你HDPI资源来匹配期望大小。...例如,启动图标是 48,72,96,或者144像素宽度,依赖于不同屏幕密度(mdpi, hdpi, xhdpi, and xxhdpi, 分别的)。...帮助保持份拷贝文件安全和容易去找到,我们建议 在你工作空间 创建一个 基于目标屏幕密度来组织资源文件文件夹结构。例如: art/... mdpi/......为了比较,下面是在一个经典应用程序资源文件夹结构: res/... drawable-ldpi/... finished_asset.png drawable-mdpi/... finished_asset.png

97800

046android初级篇之android多分辨率兼容

添加子元素 android:anyDensity="true"时,应用程序安装在不同密度终端上时,程序会分别加载xxhdpi、xhdpihdpimdpi、ldpi文件夹资源。...相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源: 如果drawable-hdpidrawable-mdpidrawable-ldpi三个文件夹中有同一张图片资源不同密度表示...,那么系统会去加载drawable_mdpi文件夹资源; 如果drawable-hpdi中有高密度图片,其它两个文件夹没有对应图片资源,那么系统会去加载drawable-hdpi资源,其他同理...; 如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi没有,系统会加载drawable-mdpi资源,其他同理,使用最接近密度级别。...2.1.2 横屏竖屏目录区分 drawable a) drawable-hdpi该图片即适用于横屏,也适用于竖屏; b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹资源

68520

Android教程-保存数据-支持不同屏幕

有四种一般尺寸: 小,一般大,大,超大 还有四种一般像素密度: 低 (ldpi), (mdpi), 高 (hdpi), 超高 (xhdpi) 为了声明你想要使用在不同屏幕上布局和位图...创建不同布局 ---- 为了在不同屏幕尺寸上优化你用户体验,你应该为每一个你想要支持屏幕尺寸创建单独文件 ....更多信息,见 设计用于多种屏幕 . 创建不同位图  ---- 你应该针对一般项目密度类型提供位图资源恰当缩放版本: 低, , 高 和 超高项目密度 ....为了生成这些图像,你应该从矢量格式源生资源开始,使用如下尺寸范围为每一种项目密度生成图像 : xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (基线) ldpi: 0.75...这就意味着如果你为xhdpi设备生成了一张 200x200 图片,你就应该用 150x150 为hdpi , 100x100 为 pi, 以及 75x75 为ldpi设备生成同样资源 .

61820

Android 实现把bitmap图片某一部分颜色改成其他颜色

如果将xxhdpi下图片剪切到drawable-mdpi,效果如下,可以看到图片明显变大。...原因:系统在加载图片时,首先去对应文件夹查找,没找到,又依次按照顺序一直在drawable-mdpi找到,但是系统会认为你这张图是专门为低密度设备所设计,如果直接将这张图在当前高密度设备上使用就有可能会出现像素过低情况...缩放倍数:以mdpi为基准,drawable-mdpidrawable-hdpidrawable-xhdpidrawable-xxhdpi : drawable-xxxhdpi = 1...总结:为了达到在各个分辨率手机上都有一样效果,最好要有一套不同分辨率图片来放在各个文件夹,一般对应如下,不过项目中为了减小app体积,除了APP图标会准备一套外,其他一般都只会准备一张较高分辨率...密度 建议尺寸 drawable-mdpi 48 * 48 drawable-hdpi 72 * 72 drawable-xhdpi 96 * 96 drawable-xxhdpi 144 * 144

82311

谈谈Android屏幕适配那些事,我们到底该怎么去选择

extra high)(普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320) 三、如何做到自适应屏幕大小呢?...需要根据dpi值准备5套图片资源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi Android有个自动匹配机制去选择对应布局和图片资源...2、切图方面: 长宽最好是3倍数(根据android推荐logo图标的大小是48(mdpi),72(hdpi),96(xhdpi)得出最小公约数)。 长宽最好是偶数。...4、关于图标的目录,480*800切下来图我们放在drawable-hdpi目录下,按照2:3放大图标放在drawable-xhdpi目录下,按照2倍放大图标放在drawable-xxhdpi目录下...demins在value文件夹下,相关配置可以在values-hpdi,values-mdpi,values-ldpi三种文件夹dimens.xml文件进行设置。

93530

【连载】聊聊 APK(三) —— Android 资源编译秘密

背景 资源本身是很简单,我们可以理解为一个文件,但是,Android 天生为兼容各种各样不同设备做了相当工作,比如屏幕大小、国际化、键盘、像素密度等等。...其实二进制资源(比如图片)是不需要编译,只不过这个“编译”行为,是为了生成 resources.arsc 以及对 xml 文件进行二进制化操作,resources.arsc 是上面说表,xml...我们顺便来看下一个用 Android Studio 新建出来 apk 吧,为了简单,暂时去除了 support library,因为会引入非常资源,我们使用aapt2 dump,得到如下: Binary...) (file) res/mipmap-mdpi-v4/ic_launcher.png type=PNG (hdpi) (file) res/mipmap-hdpi-v4/ic_launcher.png...) (file) res/mipmap-mdpi-v4/ic_launcher_round.png type=PNG (hdpi) (file) res/mipmap-hdpi-v4/ic_launcher_round.png

1.3K20

Android图片资源

目前,Android设备配置种类繁多——不同屏幕尺寸,分辨率,以及用户使用时不同屏幕方向为了让自己程序运行在多种不同尺寸上都表现良好,Android系统提供了很多有用方式。...2.4 像素密度 Android对图片分类是通过Screen pixel density (像素密度:以dpi为数值单位)进行,包括ldpi、mdpihdpixhdpi这四个主要级别。...对于一个图片,它在不同像素密度级别下缩放系数如下: xhdpi: 2.0 hdpi: 1.5 mdpi: 1.0 (参考标准) ldpi: 0.75 如果在xhdpi设备下使用合适图片尺寸是200x200...,那么在hdpi下图片应该是150x150,在mdpi下是100x100,在ldpi下是75x75....drawable 资源放在res目录下不同子目录——使用不同像素密度修饰符对应不同像素密度: drawable-ldpi/ :对应ldpi drawable-mdpi/ :对应mdpi drawable-hdpi

1.1K100

android系统如何自适应屏幕大小

Android支持屏幕机制即用为当前设备屏幕提供一种合适方式来共同管理并解析应用资源。...(320x480)     drawable-hdpi:高分辨率图片,如WVGA (480x800),FWVGA (480x854)     drawable-xhdpi:至少960dp x...例如我们在hdpi,mdpi,ldpi文件夹下拥有同一种资源,那么应用也不会自动地去相应文件夹下寻找资源,这种情况都是出现在高密度,以及低密度手机上,比如说一部240×320像素手机, 如果设置...对应bitmap 资源来说,自动缩放有时会造成放大缩小后图像变得模糊不清,这是就需要应用为不同屏幕密度配置提供不同资源:为高密度屏幕提供高清晰度图像。...例如,当前为高精度屏幕,平台会加载高精度资源(如HelloAndroiddrawable-hdpi 位图资源),如果没有,平台会将精度资源缩放至高精度,导致图片显示不清晰。

5.1K10

Android碎片化之屏幕适配

Android碎片化之屏幕适配 现如今,因Android系统开放性,市场上出现了不同厂商出厂各种android版本、分辨率、型号设备。...Android项目的res目录下一般加上我们自己创建,会有6个目录,分别是:drawble  drawble-ldpi  drawble-mdpi  drawble-hdpi   drawble-xhdpi...比如说,如果我们为 xhdpi 设备生成了 200x200 px尺寸图片,就应该按照相应比例地为 hdpimdpi 和 ldpi 设备分别生成 150x150、100x100 和 75x75 尺寸图片...即一套分辨率=一套位图资源(这个当然是Ui设计师做了) 步骤2:将生成图片文件放在 res/ 下相应子目录(mdpihdpixhdpi、xxhdpi),系统就会根据运行您应用设备屏幕密度自动选择合适图片...注:如果是.9图或者是不需要多个分辨率图片,放在drawable文件夹即可,对应分辨率图片要正确放在合适文件夹,否则会造成图片拉伸问题。

1.2K30

【知识普及】平板屏幕分辨率和屏幕比例_和平精英平板分辨率

,程序会分别加载xxhdpi、xhdpihdpimdpi、ldpi文件夹资源。...相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源: 1) 如果drawable-hdpidrawable-mdpidrawable-ldpi三个文件夹中有同一张图片资源不同密度表示...,那么系统会去加载drawable_mdpi文件夹资源; 2) 如果drawable-hpdi中有高密度图片,其它两个文件夹没有对应图片资源,那么系统会去加载drawable-hdpi资源,其他同理...; 3) 如果drawable-hdpi,drawable-mdpi中有图片资源,drawable-ldpi没有,系统会加载drawable-mdpi资源,其他同理,使用最接近密度级别。...2.1.2 横屏竖屏目录区分 1) drawable a) drawable-hdpi该图片即适用于横屏,也适用于竖屏; b) drawable-land-hdpi,当屏幕为横屏,且为高密度时,加载此文件夹资源

4.3K20

Android TV开发总结【适配】

在Google官方开发文档,说明了 mdpihdpixhdpi:xxhdpi:xxxhdpi=2:3:4:6:8 尺寸比例进行缩放。...切图应该哪个 drawable 文件夹下,切多大? UI 应该以什么标准出图? UI 出标注图 px 和 dp之间如何转换?...举个例子: 某款盒子通过上述代码获得分辨率为1920*1080 ,DPI为160dpi,盒子连接是4K电视分辨率为3840*2160: 通过160dpi,根据上表可以得知图片放在drawable-mdpi...文件夹下 在只考虑当前设备情况下,UI应该以盒子像素1920*1080出图因为,app 在机顶盒上实际输出像素就只有1920*1080像素,而在4K电视上4K显示效果是机顶盒将系统UI框架 1920...,此时我们计算一下宽度dp值:1080/1.33=812,所以我们图片和资源文件可以放在values-sw812dp和drawable-sw812dp下面。

3.8K10

今日头条屏幕适配方案落地研究

大家都知道,安卓有 mdpihdpixhdpi后缀文件,具体使用有 drawable-mdpidrawable-hdpi,或者mipmap-mdpi、mipmap-hdpi, 又或者 values-mdpi...那么,这些文件都是怎么使用呢,这又涉及到了屏幕密度这个属性,关联如下: dpi 屏幕密度 drawable-ldpi 0.75 drawable-mdpi 1(baseline) drawable-hdpi...1.5 drawable-xhdpi 2 drawable-xxhdpi 3 drawable-xxxdpi 4 平板A 三星平板5100 屏幕密度是1.33125,大于mdpi,小于hdpi,向上取整...,所以属于hdpi 平板B 三星平板P355C 屏幕密度是1,属于mdpi ldpi:mdpi:hdpi:xhdpi:xxhdpi:xxxdpi = 0.75:1:1.5:2:3:4 = 3:4:6:...只需要保证在所有设备维度上显示一致即可, * 再比如一个不支持上下滑动页面,那么需要保证在高这个维度上都显示一致 * * @param activity activity

1.4K50

Android开发笔记(七)初识Drawable

Drawable资源目录 drawable文件放在res目录各个drawable目录下,\res\drawable一般放是描述性xml文件,图片文件一般放在具体分辨率drawable目录下。...例如 drawable-ldpi里面主要放低分辨率图片,如QVGA(240×320) drawable-mdpi里面主要放中等分辨率图片,如HVGA(320×480) drawable-hdpi...如果各目录存在同名图片,则Android会根据手机分辨率来分别适配对应文件夹图片。所以在开发APP时,为了兼容不同手机屏幕,根据需求在不同目录存放不同大小图片,才能达到最合适显示效果。...比如说,drawable-hdpi放了一张背景图片bg.png(分辨率480×800),其他目录就没放,使用分辨率480×800手机查看该APP是没有问题,但是现在有一台分辨率高手机如720×...StateListDrawable是在一个xml文件定义不同状态下呈现图像。 下面是一个例子btn_visit_selector.xml <?

67940

Android 加载图片占用内存分析

Android 将所有屏幕密度分为六组通用密度:ldpi( 低)、mdpi()、hdpi(高)、xhdpi(超高)、xxhdpi(超超高)和xxxhdpi(超超超高)。...Android 将所有屏幕密度分为六组通用密度:ldpi( 低)、mdpi()、hdpi(高)、xhdpi(超高)、xxhdpi(超超高)和xxxhdpi(超超超高)。...Android系统支持4种格式像素格式,源码在Bitmap.Config为了保证图片质量,官方默认使用ARGB_8888格式,导致图片每个像素会占用4个Byte大小,所以demo里面的图片占用内存大小就是像素总数...2、静态图片区分文件夹内存占用现象 (1) 静态图片区分文件夹在X21(Android 8.0)上内存占用 那么问题又来了,放在res/drawable-nodpi/文件夹下没问题,放在其他文件夹下呢...可以看到, 对于分辨率为res/drawable-hdpi/、res/drawable-xhdpi/、res/drawable-xxdpi/三个分辨率来说,图片占据内存基本是一致,Java层内存没有消耗

2.3K20
领券