Android总结之drawable(hdpi,mdpi,ldpi)文件夹的使用

Android 深色模式适配 Android 深色模式适配 文章目录Android 深色模式适配前言撸码一、创建目录二、创建资源文件三、Shape适配深色模式四、自定义控件适配深色五、最终效果 前言 Google 在 Android 10 中加入了深色主题背景,妈妈再也不用担心我晚上玩手机变成瞎子了: 减少耗电量(个人感觉这个然并卵,除非你的手机很牛逼) 对强光比较敏感的用户提高了可视性,不再需要凑在眼前把手机屏幕调到最暗... 阅读详情


做Android有段时间了,但是好多细节还没有深入理解,关于Android中drawable文件夹的使用理解的就不是很深入。

Android为开发者提供了两种解决适配问题的方法,第一种方式是使用dip的单位,另一种方法是使用不同的drawable文件夹,今天就详细说下不同文件夹的区别

Android中提供了三个存放图片的文件夹,分别为hdpi,mdpi,ldpi,google文档上说,Andriod系统会根据手机屏幕的大小及屏幕密度去选择不同文件夹下的图片资源,以此来实现在不同大小不同屏幕分辨率下适配的问题。

比如在一个低分辨率的手机上,Android就会选择ldpi文件夹下的图片,但是如果没有在ldpi的文件夹下找见相关的资源文件,Android系统会首先从hdpi文件夹中选择文件,然后对图片资源进行缩放处理,显示在屏幕上;如果hdpi文件夹下也没有的话,会在默认的drawable文件夹中寻找。

明白以上内容,就很好解释图片放错文件夹,显示大小不同的问题了。如图

图1

图2

出现图二的原因是将放在hdpi下的图片放到了默认的文件夹下

本身图片是同一张图片,由于没有在hdpi文件夹中找到对应图片,系统在默认文件夹下找见了图片资源,但是这时系统会认为改图适用于中等分辨率的屏幕上,如果直接放到高分辨率的手机上不能适配,所以系统会自动的将图片放大,所以虽然是同一张图片,但是现实出来就一个正常效果,一个放大效果。

同理,如果同一张图片,放置在ldpi的文件夹下,在低分辨率的手机上显示正常,但是如果放在hdpi文件夹中,系统认为该图是为高分辨率显示的,要将图片缩小处理,所以显示出来的效果就是图变小了。

所以我们在平时要注意,明明都是一张图片,只是放在不同的文件夹中,显示出来的效果就很不同,原因就是我们对Android还不够了解。

 

对了,我还有个疑问,就是布局文件中设置wrap_content时,view的大小的单位是dip还是px呢!!!

 

以下为google文档的描述

At runtime, the system ensures the best possible display on the current screen with the following procedure for any given resource:

  1. The system uses the appropriate alternative resource

    Based on the size and density of the current screen, the system uses any size- and density-specific resource provided in your application. For example, if the device has a high-density screen and the application requests a drawable resource, the system looks for a drawable resource directory that best matches the device configuration. Depending on the other alternative resources available, a resource directory with thehdpi qualifier (such as drawable-hdpi/) might be the best match, so the system uses the drawable resource from this directory.

  2. If no matching resource is available, the system uses the default resource and scales it up or down as needed to match the current screen size and density

    The "default" resources are those that are not tagged with a configuration qualifier. For example, the resources in drawable/ are the default drawable resources. The system assumes that default resources are designed for the baseline screen size and density, which is a normal screen size and a medium density. As such, the system scales default density resources up for high-density screens and down for low-density screens, as appropriate.

    However, when the system is looking for a density-specific resource and does not find it in the density-specific directory, it won't always use the default resources. The system may instead use one of the other density-specific resources in order to provide better results when scaling. For example, when looking for a low-density resource and it is not available, the system prefers to scale-down the high-density version of the resource, because the system can easily scale a high-density resource down to low-density by a factor of 0.5, with fewer artifacts, compared to scaling a medium-density resource by a factor of 0.75.

Vivado与VCS+Verdi联合仿真环境搭建全攻略 本文详细介绍了如何搭建Vivado与VCS+Verdi联合仿真环境,旨在解决Vivado Simulator在大型FPGA验证中速度慢、调试弱的问题。通过指导工具版本配对、环境变量设置、关键参数配置及Xilinx仿真库编译,帮助工程师高效整合Vivado的设计管理、VCS的高速仿真与Verdi的深度调试能力,从而显著提升验证效率。 阅读详情

相关推荐

Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys

ubuntu 22.04 apt-get 安装 ros1 ros Noetic 最新版

autolabor的博客 5万+

android项目的(drawable文件夹)图片适配

android项目的(drawable文件夹)图片适配

qq_36570506的博客 783

微积分,用编程理解高数(python,C,C++)

很好理解,导数中,x是哪一点的导数,dx是精准度,y等于f(x)即函数。导数结果就是瞬时变化率。积分很好理解,a为下限,b为上限,y为函数,结果就是y=f(x)下a到b的面积。只要用定积分代入a=0,b=10(10s)y=x(1*x=1)就得到结果。F(x)为原函数,即微分后的函数是f(x)dx,微分前是F(x)一列车初始速度为10m/s,加速度为。才几十行代码,微积分也不是很难啊。,问速度达到20时车走了多少米。

linhhanpy的博客 1178

Android 资源文件存放位置 Drawable 与 Mipmap 区别

建议大家只把 需要适应屏幕分辨率的图片, app 的启动 icon 图标放在 mipmap 目录中,可以提高显示性能、占用内存少;其他图片(引导页背景图,轮播图,giftu图片等) Shape 资源 xml 文件仍然放在 drawable 里面。mipmap 会将资源缩放到设备分辨率大小drawable 会将资源缩放到设备匹配的倍数大小没有个性 哪来的签名!详情请关注点我持续更新中扫一扫 有惊喜!© 2022 09 - Guyu.com | 【版权所有 侵权必究】

低调,谦虚,自律,反思,成长! 3135

XC95144XL-10TQG144I Xilinx XC9500XL 高性能 CPLD

XC95144XL-10TQG144I 属于 Xilinx 的 XC9500XL 高性能 CPLD 家族,是一颗面向 3.3V 低电压系统的可编程逻辑器件。该器件以小封装、高速响应和良好的系统兼容性为设计目标,常用作系统控制/ glue-logic、I/O 缓冲、状态机、总线桥接与接口协议前端等场景中的可重编程逻辑单元。产品支持现场(in-system)编程与 IEEE-1149.1 JTAG 边界扫描,能在系统板上直接更新逻辑。

2403_90082736的博客 1059

从零到一:QT for OpenHarmony 开发环境实战搭建与踩坑指南

本文是一份详尽的QT for OpenHarmony开发环境搭建实战指南。文章手把手教你如何在Windows和macOS系统上,从环境准备、核心工具(DevEco Studio与社区版QT SDK)安装配置,到创建首个QT Quick项目、解决构建部署中的常见问题,最终实现应用在OpenHarmony设备上运行。内容涵盖关键配置修改、资源管理及深度踩坑经验,旨在帮助开发者高效开启跨平台开发之旅。

weixin_29190573的博客 325

谈谈Android的中的Drawable

为什么要全面理解Drawable 1、本文内容看似简单,但是drawable的种类比较繁多,导致开发者对不同的drawable理解比较混乱。 2、熟练掌握各种类型的drawable可以方便我们做出一些特殊的ui效果。 drawable 在开发中优点有很多 1、使用简单,比自定义的成本要低。 2、非图片类型的drawable占用空间较小,对减小apk的体积有很大的帮助。 Drawable 简...

dev晴天的博客 5135

AI产品经理面试宝典第94天:RAG知识库构建与预处理策略面试指南

本文深入解析RAG知识库构建的核心挑战与预处理策略,涵盖文档格式转换、问答对生成及自动化测试全流程,为AI产品经理提供面试必备的实战方法论与避坑指南,助你精准应对技术深度类问题。

打造全国最全的AI Agent开发知识领域的博客 312

Android总结之drawable(hdpi,mdpi,ldpi)文件夹的使用 .

做Android有段时间了,但是好多细节还没有深入理解,关于Android中drawable文件夹的使用理解的就不是很深入。 Android为开发者提供了两种解决适配问题的方法,第一种方式是使用dip的单位,另一种方法是使用不同的drawable文件夹,今天就详细说下不同文件夹的区别 Android中提供了三个存放图片的文件夹,分别为hdpi,mdpi,ldpi,google文档上说,Andr

cw2004100021124的专栏 720

执行HDevelop项目

这一节,我们讲述的是如何用HDevEngine加载和执行一个HDevelop项目。代码部分来源于示例程序exec_program(源文件exec_program.cpp),检测塑料零件边界上的毛刺。1.Step 1:初始化首先,我们包含HALCON/C++和HDevEngine头文件以及命名空间。注意到在这个示例程序中,HDevEngine头文件已经包含在my_hdevoperatorimpl中,所

Z's Palace 2994

osg点云加载与渲染

osg点云加载与渲染

cangqiongxiaoye的博客 821

【转】Android总结之drawable(hdpi,mdpi,ldpi)文件夹的使用

做Android有段时间了,但是好多细节还没有深入理解,关于Android中drawable文件夹的使用理解的就不是很深入。 Android为开发者提供了两种解决适配问题的方法,第一种方式是使用dip的单位,另一种方法是使用不同的drawable文件夹,今天就详细说下不同文件夹的区别 Android中提供了三个存放图片的文件夹,分别为hdpi,mdpi,ldpi,google文档上说,Andr...

weixin_34242819的博客 116

优化翼型形状的遗传算法实现

在每一代种群中,通过计算每个个体的适应度值,选择具有较高适应度值的个体,并使用交叉和变异算子对它们进行操作,从而生成新的个体。具体而言,我们将采用一个参数化的翼型模型,其中包括几何设计变量,如角度、弯曲和厚度等,以及性能指标,如升阻比和扭矩等。总之,本文提供了一个基于遗传算法的优化方法,用于寻找最优的翼型形状,并提供MATLAB源代码。需要注意的是,上述代码中的objFunc函数是一个示例性质的目标函数,实际应用中需要根据具体的问题进行修改。1.初始化一个随机的种群,其中每个个体代表一个参数化的翼型模型。

与其临渊羡鱼,不如退而结网 517

Android drawable ldpi mdpi hdpi文件夹的作用

Android平台提供了两种解决屏幕适配的方法:1. 使用dip单位,2. 使用不同的drawable文件夹。 将同一张图片的高分辨率版本放到hdpi目录下,中分辨率版本放到mdpi目录下,低分辨率版本放到ldpi目录下,系统会根据手机屏幕的密度自动加载不同目录下的图片,但是如果在对应的drawable目录下没有找到对应的图片怎么办? 答案是会从其他的文件夹中找,例如ldpi的

lihuapinghust的专栏 895

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android开发-drawable文件夹(ldpi,mdpi,hdpi,xhdpi)

(初学者题记)今天在看到在android项目范例时,在res里的drawable时发现有4种不同的文件夹,而在引用时却 只要@drawable/icon,于是就百度之。。。         下面是转载别人博客的内容:http://blog.youkuaiyun.com/peidonghui/article/details/8508171 +++++++++++++++++++++++++++++++

当火光降临之际,…… 4879

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

drawable(hdpi,ldpi,mdpi),android :gravity android:layout_gravity 区别

<br />1.drawable(hdpi,ldpi,mdpi)有什么区别?<br /> <br /> <br /> 答:主要是为了支持多分辨率的.<br /> hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)<br /> mdpi里面主要放中等分辨率的图片,如HVGA (320x480)<br /> ldpi里面主要放低分辨率的图片,如QVGA (240x320)<br /> 系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片<br />

815

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

drawable—hdpi、drawable—mdpi、drawable—ldpi

http://bbs.hiapk.com/thread-749939-1-1.html 有人肯定会对android中放置图片的地方有人肯定会对于android中放置图片的地方drawable—hdpi、drawable—mdpi、drawable—ldpi这三个感到好奇。肯定心里会想,放在哪一个都行,只要是在android中的res目录下的drawable中就行,系统会自己找到。有心的朋友肯

RandyLeonard的专栏 731

Android的三种drawable文件夹hdpi,ldpi,mdpi

这个主要是为了支持多分辨率的.hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)mdpi里面主要放中等分辨率的图片,如HVGA (320x480)ldpi里面主要放低分辨率的图片,如QVGA (240x320)系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片所以在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片

s123456789021的专栏 393

Android2.2中drawable(hdpi,ldpi,mdpi)、android :gravity区别

<br /><br />一.drawable(hdpi,ldpi,mdpi)有什么区别?<br /> <br />答:主要是为了支持多分辨率的.<br />hdpi里面主要放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)<br />mdpi里面主要放中等分辨率的图片,如HVGA (320x480)<br />ldpi里面主要放低分辨率的图片,如QVGA (240x320)<br />系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片<br />所以在开发程序时为了兼

limboenvoy的专栏 7092

drawable-hdpi,drawable-ldpi,drawable-mdpi区别?

1.Android SDK应该从什么地方下载?为什么(http://developer.Android.com/ )经常上不上去?   答:谷歌官网的 (http://developer.Android.com/ ) 这个被和谐了,经常上不去,中国的网络大家都是 知道的呵呵~     下载SDK,推荐下面网站比较及时,和谷歌同步的!网址:(http://Androidappdocs.ap

fengcai000的专栏 600

drawable-mdpi、drawable-ldpi,、drawable-hdpi三个文件夹的区别

关于res目录下的drawable-mdpi、drawable-ldpi,、drawable-hdpi三个文件夹的区别,mdpi 里面主要放中等分辨率的图片,如HVGA (320x480)。ldpi里面主要放低分辨率的图片,如QVGA (240x320)。hdpi里面主要放高分辨

kongjiajie的专栏 1461

浅析Android中Drawable(hdpi,ldpi,mdpi)目录的区别

<br /><br /> <br />Drawable(hdpi,ldpi,mdpi)的区别:<br />主要是为了支持多分辨率的.<br />hdpi里面主要放高分辨率的图片,如WVGA (480×800),FWVGA (480×854)<br />mdpi里面主要放中等分辨率的图片,如HVGA (320×480)<br />ldpi里面主要放低分辨率的图片,如QVGA (240×320)<br />系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片<br />所以在开发程序时为了兼容不同平台不

gyflyx的专栏 8519

android开发 drawable(hdpi,mdpi,ldpi)的区别

这三个主要是为了支持多分辨率。   drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:   (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)   (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)   (3)drawable

星宇的专栏 3764
上一篇: Android的onCreateOptionsMenu()创建菜单Menu详解
下一篇: RelativeLayout与LinearLayout的比较
BeBeMo
博客等级 码龄14年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值