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

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

本人一直在寻找可以一劳永逸的屏幕适配方案,今日头条是选定基准分辨率,基于设备屏幕分辨率计算出新的屏幕密度进行适配,保证所有设备的显示效果一致,完美避开上面那款设备的问题。推荐给大家。...我们看看上面的数据,可以看到按照三星6.0基准进行缩放,效果图在三星4.1这款设备宽度上的显示,是按768乘以new density ,也就是 1.04166 进行放大,不用按计算器了,就是800px,...大家都知道,安卓有 mdpihdpi、xhdpi后缀的文件,具体使用有 drawable-mdpi、drawable-hdpi,或者mipmap-mdpi、mipmap-hdpi, 又或者 values-mdpi...8:12:16 上述比值乘以12,就是 36:48:72:144:192,刚好就是icon尺寸 我们会看到,最小宽度适配方案,values-hdpi 的值是 values-mdpi 的值乘以 0.8 0.8...按今日头条适配: 768px * 1.04166 = 799.99488,图片可以看成显示成 800 px 优点很明显,布局简单 严谨的你,可能会问了,那显示超过768px呢?

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

为 DP 设计布局

什么是mdpihdpi、xdpi、xxdpi?如何计算和区分? 题图中的每一个矩形都代表着一种Android设备。Android系统碎片化问题的严重性,让我们不得不面对屏幕适配的问题。...sp,即scale-independent pixels,与dp类似,但是可以根据文字大小首选项进行放缩,是设置字体大小的御用单位。...mdpihdpi、xdpi、xxdpi: mdpihdpi、xdpi、xxdpi用来修饰Android中的drawable文件夹及values文件夹,用来区分不同像素密度下的图片和dimen值。...其实之前还有个ldpi,但是随着移动设备配置的不断升级,这个像素密度的设备已经很罕见了,所在现在适配时不需考虑。...因此同样的各个资源文件夹中的图片尺寸同样符合ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12的规律。 ?

53250

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

Android手机适配是非常让人头疼的一件事,尤其是图片,android为了做到是适配提供了很多文件夹来存放不同大小的图片,比如:drawable-ldpi、drawable-mdpi、drawable-hdpi...ldpi: 屏幕密度为120的手机设备 mdpi: 屏幕密度为160的手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px) hdpi: 屏幕密度为240的手机设备 xhdpi...不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。...dip作为其他元素的单位。...图片放在drawable中,等同于放在drawable-mdpi中,原因为:drawable目录不具有屏幕密度特性,所以采用基准值,即mdpi 图片放在某个特定drawable中,比如drawable-hdpi

1K60

Android 基本常识

px:我们通常说的手机分辨率比如小米4 是 1920 x 1080 那单位就是px,如果你把手机屏幕放大到一定程度,会看到密密麻麻的小正方形格子,竖列有1920个横列有1080个,这个单位是绝对的,不同的设备不同的显示屏显示效果是相同的...那么如何图片正确存放到不同的drawable 和 mipmap文件夹下呢?...ldpi: 屏幕密度为120的手机设备  mdpi: 屏幕密度为160的手机设备(此为baseline,其他均以此为基准,在此设备上,1dp = 1px)  hdpi: 屏幕密度为240的手机设备  xhdpi...如果是480x320的切图,则应该放在drawable-mdpi目录下。...android手机先根据当前分辨率选择最近的一个文件夹读取,比如你可以把1080P放在hdpi中,那么高分辨率手机先读hdpi这里面的,没有就找mdpi,依次类推。

65740

Android图片资源

例如,为不同的尺寸和分辨率的屏幕提供不同的图片资源,这样可以让你的应用在不同的设备上显示最适合此设备分辨率/尺寸的不同大小的图片。...对于一个图片,它在不同像素密度级别下的缩放系数如下: 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...例如,设备像素密度为ldpi,应用提供了hdpi的图片,那么系统会选择对hdpi的图片缩放0.5。

1.1K100

Android中的像素密度,屏幕密度,屏幕大小,分辨率,ldpi,mdpi,xhdpi,xxhdpi

android实际的屏幕密度进行划分(low,medium,high,and extra high,extra extra high) 一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi...” “WVGA hdpi “ “FWVGA hdpi “ “QHD hdpi “ “720P xhdpi” “1080P xxhdpi “ nodpi里面的资源不会被缩放,无论尺寸是否满足条件...此时会有一个疑问,手机的像素密度可以是任何值,Android手机只有mdpi,hdpi,ldpi,xhdpi,xxhdpi,xxxhdpi等有限的几个适配目录,Android手机如何适配呢,所以可以推测...原则,然后按比例缩放图片如果当前为xhdpi设备(项目中只有xxhdpi,xhdpi,xxhdpi,nodpi,mdpi,hdpi),则drawable的寻找顺序为,首先查找xhdpi目录 如果没找到,...依然查找xxhdpi,如果还没有找到xxxhdpi,还没有找到查找nodpi,如果还没有查找hdpi,然后查找mdpi,如果在xxhdpi中找到目标图片,则压缩2/3来使用(因为系统认为它找到了一个比合适尺寸大的图片

4K41

【Android 屏幕适配】屏幕适配基础概念 ③ ( 屏幕像素密度 DPI 与素材大小关联 | 屏幕像素密度 DPI 与 屏幕密度限定符关联 )

文章目录 一、屏幕像素密度 DPI 与素材大小关联 二、屏幕像素密度 DPI 与 屏幕密度限定符 xhdpi 关联 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 声明受限屏幕支持 一..., 对应屏幕分辨率 1440 x 2560 ( 1440P ) , 对应素材放在 素材放在 res/mmap-xxxhdpi 目录下 ; 当美工给的设计图尺寸是 720 x 1280 时 , 应该素材放在...: hdpi : xhdpi : xxhdpi : xxxhdpi=2 : 3 : 4 : 6 : 8 其中 mdpi 也就是 160 dpi 下 , 1像素 px = 1密度无关像素 dip ; 上述...\rm mdpihdpi 、 xhdpi 、 xxhdpi 、 xxxhdpi 就是屏幕密度限定符 ; 屏幕像素密度 DPI 与 屏幕密度限定符 关联 : ldpi : \rm 0 < dpi...\leq 120 , 对应图标大小 36 \times 36 ; mdpi : \rm 120 < dpi \leq 160 , 对应图标大小 48 \times 48 ; hdpi :

2.8K30

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

另外,icon放置在mipmap文件夹还可以我们程序的launcher图标自动拥有跨设备密度展示的能力,比如说一台屏幕密度是xxhdpi的设备可以自动加载mipmap-xxxhdpi下的icon来作为应用程序的...总体匹配规则就是这样,那么比如说现在终于在drawable-mdpi文件夹下面找到android_logo这张图了,但是系统会认为你这张图是专门为低密度的设备所设计的,如果直接这张图在当前的高密度设备上使用就有可能会出现像素过低的情况...代码修改这么多就可以了,然后图片移动到drawable-mdpi文件夹下。...下面我们来开始分析,mdpi密度的最高dpi值是160,而xxhdpi密度的最高dpi值是480,因此是一个3倍的关系,那么我们可以猜测,放到drawable-mdpi文件夹下的图片在xxhdpi密度的设备上显示会被放大...可以这样来分析,根据我们刚才所学的内容,如果一张图片放在低密度文件夹下,那么在高密度设备上显示图片时就会被自动放大,而如果一张图片放在高密度文件夹下,那么在低密度设备上显示图片时就会被自动缩小。

2.3K80

Android图片相关

Canvas - 名为画布,我们可以看作是一种处理过程,使用各种方法来管理Bitmap、GL或者Path路径,同时它可以配合Matrix矩阵类给图像做旋转、缩放等操作,同时Canvas类还提供了裁剪、选取等操作...Paint - 我们可以把它看做一个画图工具,比如画笔、画刷。他管理了每个画图工具的字体、颜色、样式。...你的手机屏幕有那么大但是他会将图片拉伸,当加载图片后让你感觉该屏幕没有实际的大小,而如果图片放到drawable—hdpi中则该问题就不会存在了。...比如手机屏幕的大小为420*800如果你图片放在drawable—mdpi中,那么你就要准备一张340*525分辨率的图片。...72*72 mdpi:48*48 ldpi:36*36 dp是虚拟像素,在不同的像素密度的设备上会自动适配,比如: 在320×480分辨率,像素密度为160,1dp=1px 在480×800分辨率,像素密度为

69630

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

dpi范围 密度 0dpi ~ 120dpi ldpi 120dpi ~ 160dpi mdpi 160dpi ~ 240dpi hdpi 240dpi ~ 320dpi xhdpi 320dpi ~...如果xxhdpi下的图片剪切到drawable-mdpi中,效果如下,可以看到图片明显变大。...原因:系统在加载图片时,首先去对应的文件夹查找,没找到,又依次按照顺序一直在drawable-mdpi找到,但是系统会认为你这张图是专门为低密度的设备所设计的,如果直接这张图在当前的高密度设备上使用就有可能会出现像素过低的情况...,于是系统自动帮我们做了这样一个放大操作。...缩放倍数:以mdpi为基准,drawable-mdpi : drawable-hdpi : drawable-xhdpi : drawable-xxhdpi : drawable-xxxhdpi = 1

80211

创建支持多种屏幕尺寸的Android应用

可以用来指定密度资源的配置限定符有ldpi(低)、mdpi (中等), hdpi (高), and xhdpi (超高)。例如,高密度屏幕的位图应该选hdpi。...例如,当系统在寻找一个低密度资源且这个资源是不可用时,系统喜欢降低高密度版本的资源,因为系统可以简单地乘以0.5系数高密度资源降低为低密度,与调整中等密度资源乘以0.75系数相比,这样用到很少的工件...配置实例 为了帮助实现一些为不同类型的设备设计的目标,下面是一些典型的屏幕宽度的数值: 320dp:一种典型的手机屏幕 (240x320 ldpi, 320x480 mdpi, 480x800 hdpi...例如,一个50x50 像素的mdpi屏幕的位图要在hdpi屏幕上扩大为75x75像素(如果此时没有可替代资源给hdpi),系统会这样返回此值。...例如,可以使用Density来定义位图是为哪种密度设计的,用Scaled去指定位图是否应该调整到匹配当前设备的屏幕密度。

2.6K60

Android碎片化之屏幕适配

Android项目的res目录下一般加上我们自己创建的,会有6个目录,分别是:drawble  drawble-ldpi  drawble-mdpi  drawble-hdpi   drawble-xhdpi...步骤1:以某一分辨率为基准,生成所有分辨率对应像素数列表 现在我们以320x480的分辨率为基准: 屏幕的宽度分为320份,取值为x1~x320 屏幕的高度分为480份,取值为y1~y480 然后生成该分辨率对应像素数的列表...,因此我们提供的位图资源应该始终可以满足各类密度的要求: 步骤1:根据以下尺寸范围针对各密度生成相应的图片。...比如说,如果我们为 xhdpi 设备生成了 200x200 px尺寸的图片,就应该按照相应比例地为 hdpimdpi 和 ldpi 设备分别生成 150x150、100x100 和 75x75 尺寸的图片...即一套分辨率=一套位图资源(这个当然是Ui设计师做了) 步骤2:生成的图片文件放在 res/ 下的相应子目录中(mdpihdpi、xhdpi、xxhdpi),系统就会根据运行您应用的设备的屏幕密度自动选择合适的图片

1.2K30

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

但是你可以在所有的设备上通过为每个图标提供多尺寸 来为你的图标提供更好的视觉效果。当你的app运行时,安卓检查设备屏幕的特性并且加载适当的指定密度的你app中的资源文件。...这个意思是 基线(MDPI)的资源是 48x48 px,并且 高密度(HDPI)资源应该指定为1.5倍于基线的尺寸即72x72像素,并且 x高密度(x-hight 密度)资源应该是2倍于基线即96x96...例如,启动图标是 48,72,96,或者144像素宽度的,依赖于不同的屏幕密度(mdpi, hdpi, xhdpi, and xxhdpi, 分别的)。...例如,如果一个被绘制在 mdpi的 60x60 的圆形被显示在 hdpi下将被重画为90x90 的圆型。...帮助保持多份拷贝的文件的安全和容易去找到,我们建议 在你的工作空间 创建一个 基于目标屏幕密度来组织资源文件的文件夹结构。例如: art/... mdpi/...

97000

Android一些关于分辨率和布局的设置

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别: (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854...) (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480) (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320) 测试的时候可以设定模拟器的分辨率知道了手机屏幕手机大小的分类以后...如果模拟器尚未启动,可以在Eclipse的项目Run as=>Open Run Dialog对话框中设置,如果android模拟器已经启动后,可以使用快捷键F12或Ctrl+F11来切换。...,所以不同的设备会有不同的显示方向....如果用户旋转设备这屏幕会横竖屏切换。 "nosensor" 忽略物理感应器,这样就不会随着用户旋转设备而更改了 ( "unspecified"设置除外 )。

1.2K90
领券