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

如果我们的.png可绘制图像使用恒定的DP大小,那么我们为每个屏幕大小提供不同的.pngs有关系吗?

如果我们的.png可绘制图像使用恒定的DP大小,那么为每个屏幕大小提供不同的.pngs是有关系的。

在移动应用开发中,为了适应不同屏幕大小和分辨率的设备,我们通常使用密度无关像素(DP)来定义图像的大小。DP是一种抽象的单位,它会根据设备的屏幕密度进行自适应调整,以保证在不同设备上显示的图像大小相对一致。

然而,如果我们仅使用一个固定大小的.png图像来适应所有屏幕,可能会导致以下问题:

  1. 图像失真:当将一个较小的图像拉伸到较大的屏幕上时,图像可能会变得模糊或失真,影响用户体验。
  2. 文件大小:一个较大的屏幕可能需要更高分辨率的图像,而这些高分辨率的图像文件大小通常较大。如果在所有设备上都使用同一张高分辨率图像,会增加应用的安装包大小,增加用户下载和安装的时间。

为了解决以上问题,推荐为每个屏幕大小提供不同的.png图像,以确保图像在不同设备上显示的效果最佳。具体做法如下:

  1. 生成多个尺寸的图像:根据常见屏幕密度(如mdpi、hdpi、xhdpi、xxhdpi等)生成对应尺寸的图像。这些图像可以使用设计工具(如Photoshop)或自动化工具(如Android Studio的Image Asset工具)来生成。
  2. 命名规范:为了方便管理和使用,建议按照一定的命名规范对不同尺寸的图像进行命名,以便在开发过程中快速选择和使用。
  3. 适配加载:在应用中根据设备的屏幕密度动态加载对应尺寸的图像。可以通过编程语言(如Java、Kotlin)中的条件语句或资源管理工具(如Android的资源目录)来实现。

总结起来,为每个屏幕大小提供不同的.png图像是为了保证图像在不同设备上显示的效果最佳,避免图像失真和文件大小过大的问题。这样可以提升用户体验,并且符合移动应用开发的最佳实践。

腾讯云相关产品推荐:

  • 图像处理:腾讯云图像处理(https://cloud.tencent.com/product/img)
  • 移动应用开发:腾讯云移动开发套件(https://cloud.tencent.com/product/mss)
  • 应用分发与推送:腾讯云移动推送(https://cloud.tencent.com/product/umeng)
  • 资源管理:腾讯云对象存储(https://cloud.tencent.com/product/cos)
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

但是你可以在所有的设备上通过为每个图标提供多尺寸 来图标提供更好视觉效果。当你app运行时,安卓检查设备屏幕特性并且加载适当指定密度你app中资源文件。...因为你将为每个图标实现多个尺寸以支持多个不同密度,下面的设计指南使用 dp 作为图标尺寸 计量单位 ,它是以中等密度(MDPI)屏幕作为 像素尺寸基础。 ?...颜色: #FFFFFF启用时: 80% 不透明度禁用时: 30% 不透明度 小/上下文关系 图标 在你app内部,使用小图标去表现活动,或者指定提供状态。...特别的,对于每个图标类型使用公共前缀来说,它是帮助。例如: ? 注意: 你不需要为一些类型使用共享前缀,仅在对你便利时才这样做。...从最终资源(资产asserts)中删除不需要元数据 尽管安卓SDK工具将会自动压缩 png图像资源(PNGs),当打包应用程序资源到二进制应用程序时,一个好实践是,从你PNG资源中移除不必要

1K00

【优化】949- 你必须知道图片性能优化方式

1.2 DP(device pixels) 设备像素(物理像素),顾名思义,显示屏是由一个个物理像素点组成,通过控制每个像素点颜色,使屏幕显示出不同图像屏幕从工厂出来那天起,它上面的物理像素点就固定不变了...一般将DPR2屏幕称为2倍屏,DPR3屏幕称为3倍屏。 iphoneXDPR是3,也就是3倍屏幕 面对相同主屏尺寸,不同主屏分辨率设备,同一张200*200px图片为何显示一样?...img,backgorund-image和canvas渲染方式差异 内存观察方式:通过chrome任务管理器,查看当前tab内存占用情况 使用资源: ?...图片引起内存占用情况,如果多张高性能图片可以考虑通过canvas进行渲染,但是只有单张的话就没有那么必要了,更好方式是通过设备具体情况来做响应式图片,比如使用imgsrc,根据设备情况来渲染不同倍图.../image/oranges@3x.png 2x" /> 最后想要优化图片性能,还是要从压缩图片体积下手,通过减少请求等待时间方式,提供更快展示体验,而图片压缩都已有许多完备方案,不同图片格式有着不同编码方式

85030
  • 了解 Android 矢量图片格式:`VectorDrawable`

    因此,对于固定分辨率位图,我们只了解每个像素颜色,却不理解其中包含内容。然而,矢量图像是通过在抽象大小画布上定义一系列形状来描绘图像。 为什么使用矢量图?...矢量资源三大好处,分别是: 好用 占用资源少 动态 好用 矢量图可以优雅调整大小;这是因为它们将图像绘制在抽象大小画布上,你可以放大或缩小画布,然后重新绘制对应尺寸图像。...放大位图(左)与放大矢量图(右) 这就是为什么在 Android 上我们需要为不同密度屏幕提供多个版本位图资源: res/drawable-mdpi/foo.png res/drawable-hdpi...如果我们能够使用矢量,那么这将只有其大小 30%,而且会取得更好效果: Raster: Download Size = 53.9KB (Raw file size = 54.8KB) Vector:...我们将在以后文章中深入讨论这个主题。 为什么不用 SVG? 如果你曾经使用矢量图像格式,你可能会遇到网络上行业标准 SVG 格式(缩放矢量图形)。

    2.5K30

    浅谈 Android 屏幕适配

    支持每种密度 位图绘制对象相对大小 适配方案 密度独立性 应用显示在密度不同屏幕上时,如果它保持用户界面元素物理尺寸(从 用户视角),便可实现“密度独立性” 。...Android 系统帮助您应用以两种方式实现密度独立性: 系统根据当前屏幕密度扩展 dp 单位数 系统在必要时可根据当前屏幕密度将可绘制对象资源扩展到适当大小 nodpi:它可用于您不希望缩放以匹配设备密度位图资源...不要在应用代码中使用硬编码像素值 不要使用 AbsoluteLayout(已弃用), 而是考虑线性布局使用权重分配宽高, support库中约束布局, 可以是布局更加扁平化 不同屏幕密度提供替代位图绘制对象...动态设置 一些情况下,我们需要动态设置控件大小或者是位置,比如说 popwindow 显示位置和偏移量等,这个时候我们可以动态获取当前屏幕属性,然后设置合适数值 使用官方百分比布局 dependencies...例如,如果要将用户界面设计成在手机上显示单面板,但在 7 英寸平板电脑、电视和其他较大设备上显示多面板,那么我们就需要提供以下文件: res/values-large/layout.xml:

    1.4K10

    Android图片资源

    例如,不同尺寸和分辨率屏幕提供不同图片资源,这样可以让你应用在不同设备上显示最适合此设备分辨率/尺寸不同大小图片。...正如DIP它名字,它表示一种逻辑单位,和实际pxiel之间存在着转换关系,系统会自动在不同设备像素密度时把以dp单位大小缩放合适具体像素值。...dp单位大小,或者wrap_content时,在不同像素密度屏幕上其显示像素大小是不一样。...Android中提供两种方式在屏幕绘制图像:Canvas、和Drawable。...如果不指定,那么系统以边长除去两边一像素线段作为填充区域线段。 ? 由于Nine-patch图片特殊使用方式,应该注意它最小尺寸,保证一个点可拉伸区域。

    1.2K100

    教你步步营掌握自定义 View

    分给他们后还得每个View排好在屏幕位置,难上加难。 停一停,想一想,如果是你,你怎么解决这个问题?...DecorView知道,不同View为了完成自己交互任务所需要屏幕区域大小不同,所以DecorView在确定给每个View分配屏幕区域大小时,是允许View参与进来,与它一起商量。...至于怎么分,不同ViewGroup不同分法,总体来看,可说是总有分。...下面我们举例说明,假设Size是100dp, Mode取值三种,它们代表了ViewGroup总体态度: EXACTLY 表示,ViewGroup对View说,你只能用100dp,这可是你使用者要求哦...准备图片时,使用了一个小技巧,就是时针和分针,你所看到图像只是图片一半,在图像下方,还有同样大小空白,这个是做什么用呢?主要是为了绘制图片时方便,待会儿就可以明白了。 材料齐全,开工!

    78760

    关于移动端适配,你必须要知道

    在解决这些问题过程中,我们往往会遇到非常多概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念意义?...像素可以作为图片或电子屏幕最小组成单位。 下面我们使用 sketch打开一张图片: ? 将这些图片放大即可看到这些像素点: ? 通常我们所说分辨率两种,屏幕分辨率和图像分辨率。...如果黑色手机使用了视网膜屏幕技术,那么显示结果应该是下面的情况,比如列表宽度 300个像素,那么在一条水平线上,白色手机会用 300个物理像素去渲染它,而黑色手机实际上会用 600个物理像素去渲染它...4.7 获取浏览器大小 浏览器我们提供获取窗口大小 API很多,下面我们再来对比一下: ? window.innerHeight:获取浏览器视觉视口高度(包括垂直滚动条)。...如果视觉视口 375px,那么 1vw=3.75px,这时 UI给定一个元素 75px(设备独立像素),我们只需要将它设置 75/3.75=20vw。

    2K20

    关于移动端适配,你必须要知道

    在解决这些问题过程中,我们往往会遇到非常多概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念意义?...像素可以作为图片或电子屏幕最小组成单位。 下面我们使用 sketch打开一张图片: ? 将这些图片放大即可看到这些像素点: ? 通常我们所说分辨率两种,屏幕分辨率和图像分辨率。...如果黑色手机使用了视网膜屏幕技术,那么显示结果应该是下面的情况,比如列表宽度 300个像素,那么在一条水平线上,白色手机会用 300个物理像素去渲染它,而黑色手机实际上会用 600个物理像素去渲染它...4.7 获取浏览器大小 浏览器我们提供获取窗口大小 API很多,下面我们再来对比一下: ? window.innerHeight:获取浏览器视觉视口高度(包括垂直滚动条)。...如果视觉视口 375px,那么 1vw=3.75px,这时 UI给定一个元素 75px(设备独立像素),我们只需要将它设置 75/3.75=20vw。

    1.9K41

    关于移动端适配,你必须要知道

    在解决这些问题过程中,我们往往会遇到非常多概念:像素、分辨率、 PPI、 DPI、 DP、 DIP、 DPR、视口等等,你真的能分清这些概念意义?...像素可以作为图片或电子屏幕最小组成单位。 下面我们使用 sketch打开一张图片: ? 将这些图片放大即可看到这些像素点: ? 通常我们所说分辨率两种,屏幕分辨率和图像分辨率。...如果黑色手机使用了视网膜屏幕技术,那么显示结果应该是下面的情况,比如列表宽度 300个像素,那么在一条水平线上,白色手机会用 300个物理像素去渲染它,而黑色手机实际上会用 600个物理像素去渲染它...4.7 获取浏览器大小 浏览器我们提供获取窗口大小 API很多,下面我们再来对比一下: ? window.innerHeight:获取浏览器视觉视口高度(包括垂直滚动条)。...如果视觉视口 375px,那么 1vw=3.75px,这时 UI给定一个元素 75px(设备独立像素),我们只需要将它设置 75/3.75=20vw。

    2.1K10

    Android – Drawable 详解

    - 具有伸缩区域PNG图片,以允许适当调整大小 ⑤ Vector Drawables - 定义复杂基于XML矢量图像 下面让我们一一介绍它们使用方法 Shape Shape Drawable...Drawable List 状态集合 StateListDrawable是一个在XML中定义绘制对象,根据对象状态,使用多个不同图像来表示相同图形。...例如,Button控件可以以几种不同状态之一存在(按下,焦点或不可点击),并且使用Drawable状态列表,可以为每个状态提供不同背景图像。...NinePatch是具有.9.png文件扩展名图像,表示这是一个伸缩PNG图像。该文件与正常PNG文件没有什么不同,除了您将添加细黑线以指示图像垂直和水平“可拉伸”和“填充”区域。...这意味着使用基于矢量图像,在位图图像情况下,你只需要一个drawable file,而不是每个屏幕密度drawable file。

    5.4K50

    Android 性能优化最佳实践

    1、布局优化 屏幕某个像素在同一帧时间内被绘制了多次。在多层次 UI 结构里 面,如果不可见 UI 也在做绘制操作,这就会导致某些像素区域被绘制了多 次。...这就浪费大量 CPU 以及 GPU 资源。 1.0、防止过度绘制 如果父控件颜色,也是自己需要颜色,那么就不必在子控件加背景颜色 。...我们可以使用绘制对象,某些图像不需要静态图像资源;框架可以在运行时动态绘制图像。...所有这些工具都可以减少 PNG 文 件大小,同时保持感知图像质量。...一个 100 字节文件可以生成与 屏幕大小相关清晰图像。 但是,系统渲染每个 VectorDrawable 对象需要花费大量时间 ,而较大图像需要更长时间才能显示在屏幕上。

    1.4K10

    android学习笔记----关于图形基本处理讲解

    会根据设备屏幕密度,将这一数值转换为不同像素数量,那么对图片来说是如何操作呢?...我们肯定不希望出现这种情况,要解决该问题,我们可以针对每个密度类别,同一图片提供不同尺寸版本,这样会在所有设备上都能显示非常清晰图片。...我们来举个例子: 对中密度设备来说 1 dp = 1 px,所以如果我们希望图片尺寸是 48dp x 48dp那么该图片 mdpi 版本应该是 48px x 48px 对于高密度设备来说 1 dp...= 1.5 px,所以如果我们希望图片尺寸 48dp x 48dp那么该图片 hdpi 版本应该为 72px x 72px 我们可以根据提供比例计算出高分辨率尺寸,可以看出,图片 xxxhdpi...dp和px之间关系:1dp屏幕密度160dpi时1px,也就是说在密度值160dpi情况下,1dp=1px。

    64520

    聊聊有关SVG那些事儿

    我们总要重新提供一份体积更大高清png并且删掉可能不太多使用小分辨率图片。...所以,我们可以将“加载”和“渲染”放在一起进行比较,就是因为只有第一次加载和渲染上我们PNG不同。...Hi,SVG 可能上面微信介绍大家有点懵,没关系,LZ也是一样懵,我们只需要了解如下几点即可: SVG优势相比PNG,SVG有着更好兼容性以及相比使用PNG,SVG体积更小; SVG并不是android...到现在我们了解甚少,不过,没关系,慢慢来呗~ SVG,即Scalable Vector Graphics 伸缩矢量图形。...Vector Drawable,Hello Vector Drawable相对于普通Drawable来说,以下几个好处: (1)Vector图像可以自动进行适配,不需要通过分辨率来设置不同图片

    1.3K40

    移动应用界面设计尺寸规范「建议收藏」

    简单理解的话,px(像素)是我们UI设计师在PS里使用,同时也是手机屏幕上所显示dp是开发写layout时候使用尺寸单位。 为什么要把sp和dp代替px?...app通知,要提供一个新通知时显示在状态栏通知图标。...如果你设计元素高和宽至少48dp,你就可以保证: (1)触摸目标绝不会比建议最低目标(7mm)小,无论在什么屏幕上显示。 (2)在整体信息密度和触摸目标大小之间取得了一个很好平衡。...另外,每个UI元素之间空白通常是8dp 。...开发拿到设计稿时,将上面标注以px单位字号大小图像尺寸除以2,就是非retina屏上pt值,这样在retina屏上也可以根据此pt值换算对应px大小,以确保不同分辨率下有合适效果。

    4.8K20

    UI设计师必须知道 iOS和AndroidAPP图标设计指南

    为什么每个app都需要一个图标? app图标是每个移动应用程序添加唯一图像。这是新用户在App Store和Google Play上找到应用时看到内容。...在iOS中,可以找到不同大小图标,从40px×40px到1024px×1024px。因为减小图像大小总是比较容易,所以我们将创建一个更大画布。...导出iOS应用程序图标在导出之前,我们需要删除圆角和笔划,因为系统会自动添加它。别忘了隐藏网格。 ? 图标应导出png并设置没有透明度。但各种尺寸呢?我们真的需要手动完成?...例如每个交互模板不仅会导出各种大小图标,还会显示它在主屏幕和App Store中外观。它没有看起来那么难。接下来是Android应用程序图标!...在坚固背景下无法看到视差效果,但如果构图复杂,它可以为您设计带来动态效果。在这种情况下,您需要为两个图层提供两个png图像。请准备好并非所有用户都能看到效果。

    2.1K20

    Android系统性能优化

    显示GPU过度绘制,分层如下如所示: 添加描述 通过颜色我们可以知道我们应用是否多余层次绘制如果一路飘红,那么我们就要相应处理了。...所以我们了第一个优化版本: 优化 1.0 如果父控件颜色,也是自己需要颜色,那么就不必在子控件加背景颜色 如果每个自控件颜色不太一样,而且可以完全覆盖父控件,那么就不需要再父控件上加背景颜色 尽量减少不必要嵌套...2、我们可以使用绘制对象,某些图像不需要静态图像资源; 框架可以在运行时动态绘制图像。Drawable对象(以XML格式)可以占用APK中少量空间。...所有这些工具都可以减少PNG文件大小,同时保持感知图像质量。 5、使用WebP文件格式 可以使用图像WebP文件格式,而不是使用PNG或JPEG文件。...使用这些图形可以大大减少APK大小。一个100字节文件可以生成与屏幕大小相关清晰图像

    59420

    适配完结篇一 - 超快速Android屏幕适配方式

    已知公式 px = density * dp; density = dpi / 160; 屏幕尺寸、分辨率、像素密度三者关系 通常情况下,一部手机分辨率是宽x高,屏幕大小是以寸单位,那么三者关系是...dp并不能做到适配 假设我们UI设计图是按屏幕宽度360dp来设计如果屏幕宽度1080/(440/160)=392.7dp,也就是屏幕是比设计图要宽。...但是通常情况下,设计师并不会对不同屏幕提供不同设计图,他们需求仅仅是不同屏幕下控件对屏幕相对大小一致,直接使用dp并不能满足这一点,而对各种屏幕适配一遍又显得略为繁琐,并且修改也较为麻烦。...pt作为长度单位,按照上述想法将其重定义屏幕大小相关相对单位,不会对dp等常用单位使用造成影响。...假如设计图宽度200,一个控件在设计图上标注长度3,只需要在初始化时定义宽度200,绘制该控件时长度写3pt,那么在任何大小屏幕上该控件所表现长度都为屏幕宽度3/200。

    83120

    Android | 计算图片占用内存大小

    也就是 长乘宽在乘4,至于为什么要乘以四,因为格式是 ARGB_8888,每个像素点四个字节,后面四个8表示8个比特,8个比特就是一个字节。一共四个字节。 例2:上面图片,格式 jpg。...图片内存体积优化 根文件存储格式无关 通过上面的分析我们可以知道图片占用内存大小是和图片本身大小没有关系。...不使用图片 优先使用 VectorDrawable 时间和技术允许前提下使用代码编写动画 总结 图片本身大小和它占用内存大小没有什么关系。...如果不对图片进行优化处理,那么 Android 系统就会根据图片不同来源决定是否需要对原图分辨率进行转换在加载进内存 其他图片如,assets,磁盘,流等图片都是按照原图分辨率来计算大小 基于上面的分析...,我们可以知道 在不同 dpi 设备中,同个界面的相同图片所占用内存大小可能不一样,同个图片在不同资源文件中加载到内存后所占用大小也可能不一样。

    3.2K40

    Android中一张图片占据内存大小是如何计算提问正文推荐阅读

    提问 阅读本篇之前,先来想一些问题: Q1:一张 png 格式图片,图片文件大小 55.8KB,那么它加载进内存时所占大小是多少?...Q2:为什么有时候,同一个 app,app 内同个界面,界面上同张图片,但在不同设备上所耗内存却不一样? Q3:图片占用内存大小公式:图片分辨率 * 每个像素点大小,这种说法正确,或者严谨?...png信息.png 图片分辨率是 1080*452,而我们在电脑上看到这张 png 图片大小仅有 55.8KB,那么问题来了: 我们看到一张大小 55.8KB png 图片,它在内存中占有的大小也是...所以,我在图片内存大小这一章节中,才会说到,如果使用了某个开源库图片,那么那么理论就不适用了,因为系统开放了 inSampleSize 接口设置,允许我们对需要加载进内存图片先进行一定比例压缩,...同个 app,同一张图片,但图片放于不同 res 内资源目录里时,所占内存大小有可能不一样。 以上场景之所说可能,是因为,一旦使用某个热门图片开源库,那么,以上理论基本就不适用了。

    1.6K20

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

    编写布局xml时,如果一个控件长宽都使用dp来指定,那么能确保该控件在各种大小与分辨率屏幕绝对大小都大致相当。...也就是说无论在pad下还是大小屏手机下,我们实际看到该控件大小是差不多: 资源目录名。上图可见虽然使用dp确保了控件在不同屏幕绝对大小一致。...在res目录下可以给各资源目录都加上例如’-1920x1080’等后缀来适配不同屏幕,具体规则可见官网文档。这样可以针对不同屏幕提供不同布局,甚至针对pad与手机提供两套完全不同布局样式。...但是通常情况下,设计师并不会对不同屏幕提供不同设计图,他们需求仅仅是不同屏幕下控件对屏幕相对大小一致,所以dp并不能满足这一点,而对各种屏幕适配一遍又显得略为繁琐,并且修改也较为麻烦。...该库想法非常好:对照设计图,使用px编写布局,不影响预览;绘制阶段将对应设计图px数值计算转换为当前屏幕下适配大小;简化接入,inflate时自动将各Layout转换为对应AutoLayout

    1K30
    领券