你好,手机的屏幕像素密度ppi和密度会对玩游戏等各方面的有影响嘛 像玩游戏的话画面虚不虚呢?

如何处理高像素密度屏幕(手机平板等移动设备)一像素线条(比如边框)不发虚_百度知道
如何处理高像素密度屏幕(手机平板等移动设备)一像素线条(比如边框)不发虚
比如在某1.25像素密度的屏幕上,表单中的多个输入框边框都是1像素宽,但是有的边框就变的粗了些且发虚,而在1像素密度的屏幕上看没有问题,整齐清晰。
如何解决?
我能推测可能是使用了em或者百分比单位造成的,比如出现了小数值的像素值,遇到高密屏就不行...
我有更好的答案
不存在1.25像素之说。边框不建议用rem和百分比为单位,那样会有小数,如果需要强调边框的话,建议你统一为2px,颜色稍微深些即可:border: 1px solid #可以改为border,要么1px,要么2px: 2px solid #999,防止不同浏览器表现结果不一。比如原来是像素的大小都是自然数整数
边框是从来不用比例单位的。是否使用2px这个得看需求不能随意上。所以现在的问题是如何在高密屏中是1像素正确显示,不发虚,谢谢你的回答!
那你只能用border: 1px solid #这个属性了,可以颜色略为深些。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。推荐这篇日记的豆列
&&&&&&&&&&&&家电百科 产品:
> 什么样的手机玩游戏更好~
什么样的手机玩游戏更好~ 常见问题
Android手机性能问题一直被人们津津乐道,强大硬件的比拼,各类定制ROM的较量,这一切都给Android手机带来了无穷的魅力。你知道自己的手机是否适合玩3D游戏?你安卓手机的硬件设备是不是够强硬?装一个跑分软件,一切都明了。尽管跑分测试成绩并不是手机实际性能表现的全部,但至少还是能够在很大程度上体现一款手机硬件配置的水平。作为知名的跑分软件,安兔兔根据最新的3.0的新评测标准统计出了2012年度Android手机最强性能排行榜,到底谁优谁劣,有兴趣的朋友不妨一起来关注一下具体的排名情况吧的1.4GHz主频的Exynos 4412四核处理器,并提供了1GB的RAM内存和8GB的存储容量。同时在拍照功能上,K860内置的800万像素摄像头也有出色表现,支持快速启动和0.2秒对焦,拥有最高100张的连拍和HDR功能。联想K860还搭载了四叶草UI界面的Android系统,并进行了一些细微的优化,比如可以支持信息推送功能,而且在阅读短信时,还可以直接使用手指多点触控缩放短信字体,操作十分简单方便。此外,该机还拥有200万像素的前置摄像头,能够实现不错的自拍和视频聊天效果。目前,联想K860提供了黑色和白色等机身色彩款式选择,其市场价格受升级版本K860i问世的影响,已经跌至2000元以下。TOP9: Nexus 4有&谷歌四儿子&之称的Nexus 4一度在网友中十分受宠,并被安兔兔网站认为是最具性价比的智能手机,但前提是如果你能按原价买到的话。该机配备分辨率为像素的4.7英寸IPS触控屏,像素密度高达320ppi,能够提供出类拔萃的显示效果,而装载高通骁龙S4 APQ8064四核处理器和拥有的2GB RAM容量,结合新版操作系统则会带来更流畅的使用体验。LG Nexus 4率先搭载目前最新的Android 4.2版本系统,允许多个用户在相同设备中进行个性化设置,并加入被称之为Photo Sphere的全景拍照功能。支持Wi-Fi Alliance认证的Miracast无线显示标准,无需任何Wi-Fi网络连接即可在LG Nexus 4与智能电视等其他设备间轻松共享流媒体音频及视频等。LG Nexus 4还支持极为流行的Swype手势输入法,用户仅需在虚拟QWERTY全键盘之上滑动手指即可完成输入。并且除了提供LTE网络、NFC技术和无线充电等功能之外,该机还内置800万像素摄像头,支持自动聚焦和1080p全高清视频录制等功能。LG还为该机引入无线充电国内,可以通过Wireless Charging Orb感应充电基座实现无线充电。但可惜的是这款手机的电池为内置式设计,并且也不支持存储卡扩展。同时虽然LG Nexus 4在谷歌Play商店里售价只有约1800余元,但是货源极少,而且经常断货,至于16GB容量港行版本的售价约合人民币3500元左右。TOP8:联想K860i作为联想K860的升级版本,联想乐Phone K860i的整体配置更为强劲,而且还延续了前代产品的高性价比,所以在推出之后同样受到了无数消费者的青睐。该机也采用了5.0英寸720p分辨率的超大触摸屏,仍旧为第三代AH-IPS硬屏,支持1000:1的对比度和450nit的亮度,即使在阳光下屏幕上的内容也清晰可见。联想乐Phone K860i还搭载了Android4.0.4系统和加入了标志性的四叶草主题,并进行了深度定制,整体操控体验更为便捷、流畅。内置有多个联想手机独有的应用程序,包括乐语音、乐同步、乐服务、乐安全以及茄子快传等。比如借助乐语音功能,用户只需说出相 关命令,手机即可帮助用户实现发短信、播放歌曲或是拨打电话等操作。而作为该机在硬件配置上的最大升级,联想乐Phone K860i虽然同样搭载了一枚Exynos 4412四核处理器,不过主频由先前的1.4GHz提升到了1.6GHz,同时RAM也升级到了2GB,整体配置更为强劲,能够带来更流畅的操控体验。联想乐Phone K860i的其他功能配置则延续过去的水准,包括200万像素前置镜头和800万像素主镜头,支持百张连拍和1080p全高清视频录制等等。目前,该机售价仅为2288元,延续了上一代的性价比优势。TOP7:三星GALAXY Note II三星GALAXY Note II不仅有着超高的人气和不俗的销售成绩,而且更是被安兔兔称为大屏智能手机的最完美之作。作为一款介于手机和与平板的跨界机型,该机的最大的特色是采用了5.5英寸高清触控屏,无论浏览网页和观看视频都能有不同寻常的视觉体验。同时出色的手写功能也是该机的主要优势,其特色在于该手写笔的尖端使用了为电容屏幕设计的导电橡胶笔头,能够真实模拟现实中的笔和纸的使用效果。并且除了出色的使用触感之外,该机的新型手写笔所具备的一系列诸如 &手势&&悬浮操作&等功能也是吸引人的地方之一。三星GALAXY Note II还搭载了Android4.1系统,并且内置1.6GHz的猎户座Exynos4412四核处理器,拥有2GB的RAM容量,能够带来更顺畅的操作体验,提供了16GB、32GB和64GB三个容量版本选择和支持存储卡扩展。三星GALAXY Note II还内置有800万像素摄像头,并将配备的电池容量由2500毫安时增加至3100毫安时的高容量锂电池,在硬件配置全面升级的同时,保证了手机足够的续航能力。目前,该机已有粉色版本推出,行货版本的售价约为4498元,与水货版本有数百元的价差。TOP6:LG Optimus GLG Optimus G属于内外俱佳的旗舰级机型,并被安兔兔成为是集合了LG所有优点的最高端机型。该机率先在业界采用了in-cell触控面板,最大的特色是比过去薄了30%,并且LCD液晶显示屏紧贴玻璃,这样使用手机能够做到更薄更美观。而手机所配备的4.7英寸True HD IPS LCD触控屏则采用RGB像素排列方式,并提供了320ppi的像素密度,能够带来出类拔萃的显示效果。而除了装载1.5GHz高通Snapdragon S4 Pro四核处理器,拥有2GB的RAM容量以及搭载有Android4.0系统,该机还提供了独特的双画面显示功能,用户借助MHL输出功能可以在大屏幕和电视上播放高清视频画面,也能够同时在手机上使用浏览器上网或查看电子邮件。LG Optimus G还提供了对LTE 4G技术的支持,拥有130万像素前置镜头,并首次在四核智能手机中使用了1300万像素摄像头,支持自动聚焦和1080p全高清视频录制等功能。而为了获得更理想的续航待机能力,该机还配备了2100mAh的电池,官方称可完成800次完全充电,寿命比现有的电池延长了 60%。LG Optimus G将提供黑色和白色两种色彩版本可选,目前全球销量已突破百万部,在国内市场水货价格在3100元左右,行货版本则已经拿到入网许可证。TOP5:HTC Droid DNA作为全球首款装载Full HD全高清分辨率触控屏的智能手机,HTC Droid DNA被安兔兔评价为2012年HTC的最佳之作。该机首次配备的5寸1080p分辨率SLCD3触控屏,不仅首次在业界带来了像素的全高清分辨率,而且子像素密度更是达到了440ppi,无与伦比的精细度让用户在手机上浏览网页或是观看视频将会得到绝对震撼的视觉效果。HTC Droid DNA还装载了高通S4 Pro APQ8064四核处理器,配备2GB RAM的内存容量,让手机在多任务和运行速度方面有更好的流畅度。而除了支持LTE 4G网络和全球漫游功能,能够在GSM/WCDMA/HSDPA以及CDMA网络中使用之外,该款手机还支持Beats Audio音效和搭载两个2.55V音频放大器,让手机无论外放效果或是耳机欣赏音乐都有更好表现。HTC Droid DNA还搭载了Android4.1系统版本,并搭配最新的HTC Sense 4+界面,包括在拍照功能以及云服务方面的改进将会为用户带来更出色的体验。而除了拥有16GB的存储空间,支持存储卡扩展之外,该机还内置800万像素主镜头和210万像素前置镜头,拥有Beats Audio、NFC,蓝牙4.0,HDMI输出,DLNA连接等功能。HTC Droid DNA提供了红色、黑色和白色等三种机身色彩选择,行货版本HTC Butterfly在国内市场的目前报价在4380元左右。TOP4:泛泰VEGA R3按照安兔兔的说法,泛泰这款大屏智能手机不仅仅在性能上,而且在韩国热门榜中也超过了三星。该机采用了超窄边框设计,所以为单手持握带来了可能。而手机配备的5.3英寸触控屏则采用了色彩鲜艳的&Natural IPS Pro LCD&屏幕,结合720p的高清分辨率和高可视角度,能够带来更理想的显示效果。泛泰VEGA R3在硬件配置方面同样丝毫不逊于市面上的各旗舰手机,配备由主频为1.5GHz的高通骁龙S4 Pro系列APQ8064四核心处理器,提供了2GB RAM以及16GB的ROM存储空间,搭载有Android 4.0.4版本。并配备了包括陀螺仪传感器以及温度传感器在内的几乎所有传感器。泛泰VEGA R3还内置的几项比较有特色的功能,比如记事本功能便提供了类似三星的S-Note功能,可以添加手写内容、键盘文字输入、图片、视频等内容。此外,该机还采用了双摄像头设置,拥有1300万像素背照式主镜头和200万像素前置镜头,支持LED闪光和HDR等拍照功能。泛泰VEGA R3还配备了2600毫安时可拆卸式电池,并支持2A的快速充电设计,能够100分钟左右就可以完全充满电池。目前,该机在国内水货市场的报价在2699元左右。TOP3:夏普Zeta SH-02E夏普Aquos Phone Zeta SH-02E是第一款搭载4.9英寸720p高清分辨率IGZO(铟镓锌氧化物 Indium Gallium Zinc Oxide)触控屏的智能机型,并被安兔兔网站全日本最强性能的手机。该机所使用的IGZO触控屏能通过其透光度高的特性,降低所需屏幕背光亮度,从而有效地达到低功耗的目的。夏普Aquos Phone Zeta SH-02E还拥有足够出色的硬件配置,装载有1.5GHz的高通S4 Pro APQ8064四核心处理器,配备2GB RAM内存和32GB ROM存储容量,支持最大64GB的micro-SDXC存储卡扩展。同时该机还是一款支持 IP55防泼水与IP57防水防尘能力的智能手机,其机身旁的插孔都有防护盖的设计,即便是浸泡在1米的水中 30分钟仍维持正常功能。夏普还为该机搭载了Android 4.0操作系统,并提供了DoCoMo 专属的Palette UI以及Feel UI两种界面,用户可以根据自己的需求进行选择和切换。同时该机还在通知栏加入了丰富的功能设定键,大大提升了使用上的便利性。此外,该机还拥有129万像素前置镜头和1600万像素主镜头,提供了足够强大的拍照功能和照片画质。夏普Aquos Phone Zeta SH-02E还具备实用的省电模式,加上内建 2320mAh高容量电池,能够有效提升续航表现。目前,这款夏普手机提供了三种色彩款式选择,国内水货市场的价格在元左右。TOP2:小米手机2代小米手机2被安兔兔网站称为是中国最受欢迎的手机,超频后,长期排在AnTuTu 世界榜第一。该机主要特色是采用1.5GHz高通APQ 8064四核处理器,拥有当前最强劲的处理性能,内置的Adreno 320图形处理器性能是过去的小米1代的四倍,游戏和多媒体表现更出色。小米手机2还采用窄边设计,拥有4.3寸720p分辨率的IPS材质触控屏,提供了342ppi的像素密度。同时为了改善拍照效果,小米二代手机内置的800万像素主摄像头还采用了BSI-2背照式二代感光组件,拥有F/2.0大光圈,27mm广角镜头,零快门延迟,可每秒八连拍,支持1080p高清摄像,具备陀螺仪辅助防抖功能。小米二代手机还配备2GB RAM和16GB机身内存,运行基于Android 4.1版本的最新MIUI。还具备智能切换双天线系统,拥有200万像素前置镜头和支持OTG功能,可连接U盘、键盘、鼠标,给其他手机充电等等。同时所配备的2000mAh的薄电或3000mAh厚电池,则能够带来更出色的待机续航表现。小米二代手机最吸引人自然还是超高的性价比,在性能大幅度升级的情况下,该机的售价仍旧为1999元。目前,小米二代电信版也已经开卖,是目前国内价格最便宜的电信版四核智能手机。TOP1:华硕PadFone 2作为华硕变形手机第二代产品,华硕PadFone 2在设计上已经有了全新突破,不仅相比上一代更轻更薄,而且在硬件配置上的升级更是让该机充满吸引力。对此,安兔兔网站给出的评价是综合性能最强,你能同时拥有手机与平板。比如该机此次搭载了4.7英寸超大HD高分辨率防刮划玻璃屏,在色彩饱和度以及艳丽程度上都有一定程度提升。同时目前65毫秒的触控反应时间,也让用户在点、触之间更加流畅。华硕PadFone 2还配备了高通骁龙S4四核处理器,并且搭载有Android4.1系统,内置1300万像素摄像头支持自动聚焦、每秒6张连拍,以及每秒60帧的720P高清摄像,再加上华硕色彩增艳技术,让户外摄影有了更好的画质表现。华硕PadFone 2还支持LTE和HSPA+网络,并且同样拥有独树一帜的平板底座PadFone 2 Station,借助更为简单的对接结构,让手机立刻变身平板。此外,华硕为这款变形手机设备使用了2140mAh电池,支持最长16小时的3G通话和13小时的Wi-Fi网页浏览。华硕PadFone 2还拥有最高至64GB内置存储空间(可在手机和Station底座平板间共享),支持NFC近场通讯技术, 16GB版本手机部分的售价预计为3800元。
标签:&&&&&&&&&&&&&&&
" tab="tab_0" >常见问题热点事件家电人物家电名词热门品牌
热门新品1234567891012345678910 123 4 5 6 7 8 9 10Android屏幕适配——多分辨率多屏幕密度 - 简书
Android屏幕适配——多分辨率多屏幕密度
为什么要适配,适配的好处等等这里就不说了,直接说我们要怎么适配,请看下面的内容。1.重要概念px:pixel,像素Android原生API,UI设计计量单位,如获取屏幕宽高。屏幕分辨率:指在纵向和横向方向上的像素点数,单位是px,一般显示方式是纵向像素数量*横向像素数量,如。屏幕尺寸:一般是屏幕对角线长度,单位是英寸,常见尺寸有3.5,4.0,4.3,4.7,5.0,6.0等。屏幕像素密度:ppi pixel per inch的缩写,意思是每英寸屏幕上的像素数,因为屏幕尺寸是商家生产时就规定好的,屏幕尺寸一样的手机,屏幕宽高却不一定一样,所以通常取屏幕对角线像素数量和屏幕尺寸(屏幕对角线长度)来计算屏幕像素密度,计算公式就是通过勾股定理和分辨率计算得到屏幕对角线像素数量,再除以屏幕尺寸。手机参数上也会有这个数值。dpi:dot per inch点像素密度,它的计算方法也和ppi一样,但从很多方面上,dpi是和ppi有区别的,ppi是用在设备上的单位,比如显示器;而dpi是用在印刷品上的单位,比如要打印一幅地图;在图像上的像素看起来是一个个点或者方块,这时候通常就将两者混用。要注意的是,我们并不能在Android适配时直接使用手机参数上的ppi值,而是使用dpi,Android对dpi根据大小做了规定的分档,以160dpi为基准,分为ldpi(120dpi)、mdpi(160dpi)、hdpi(240dpi)、xhdpi(320dpi)、xxhdpi(480dpi)等,当然现在手机的分辨率和尺寸更加多,像560dpi,600dpi也有,举个例子,Nexus 6 ppi是493,那按道理我们计算出来的dpi也是493,但Android的分档里面并没有493dpi,所以实际上它的dpi是560,而这个值我们是可以在手机的系统文件里面修改的。一定程度上,我们甚至可以说分辨率和适配没有关系,我们需要考虑的是dpi值,而这个值是可以与分辨率没有关系的,是手机厂家设的。dp/dip:density independent pixels密度无关像素,Android设计的一个单位,它与px存在一个换算关系,Android规定,在160dpi时,1dp等于1px,那么320dpi时,1dp就等于2px,所以当px换算为dp时,dp =160 * px / dpi;dp换算为px时,px = dp * dpi /160。换算方法代码:
px与dp的相互换算
sp:scale independent pixels比例无关像素,是Android推荐使用的字体大小单位,同样是密度无关,而且看上去似乎使用dp也没问题(以前的Android开发很多是这样写)但是,原因就在比例上,字体除了数值设置外,还受到系统字体大小设置的影响,而使用sp是适应这种变化的,dp则不会跟随系统字体大小设置的变化而变化,所以除非你想字体大小不随着系统字体大小设置变化,字体大小单位都使用sp。但是sp与设计图上px的转换可以使用dp与px的换算公式。2.适配适配方案有很多种,比如百分比布局,比如根据每个要适配的屏幕都写一套布局,比如分辨率等比缩放等。但都有这样那样的问题,Apk体积增大,难以维护……我个人比较推荐以下的做法:多个demins(dp写法)我们可以把控件的大小数值写在多个dimens xml文件中,让应用显示控件大小的时候像获取图片资源一样,根据规则选择具体的值。而dimens文件在values文件夹下,其实就是应用到不同的values文件夹下的dimens文件中读取到需要的值。但这个“规则”的设置就是最考验适配技巧的时候了,诀窍在于我们怎么去命名values文件夹和对设计稿上控件大小进行符合“规则”的单位换算。让我们来看一下怎么去做?values文件夹根据限定符去命名屏幕尺寸:指最短的可用屏幕区域。如sw480dp,表示适配可用屏幕尺寸起码为480dp的情况。屏幕分辨率:必须较大数值在前,较小数值在后,如,表示适配分辨率为的情况,其中x是英文字母x而不是乘号。屏幕像素密度:如mdpi,表示适配屏幕像素密度值近似或等于mdpi(160dpi)的情况。屏幕方向:如land(横向)、port(竖向)表示适配屏幕方向为land或者port的情况。版本:vX(X代表版本号,现在是1到23),表示适配SDK版本为X的情况。还有很多这里就不一一细说了。限定符可以组合起来使用来限定更精确的情况如:values-mdpi-land--v19,表示适配SDK版本为19,分辨率为的横向屏幕的mdpi手机。学过组合的都知道这里能有多少种限定符组合,而且其中分辨率的值还是不定的,只要有厂家生产不同分辨率的手机,我们就可以有无数种限定符组合,然而,我们并不用惧怕,限定符的适配是向下匹配的,譬如:有values-port-的手机屏幕需要适配,当我们建立的values文件夹里面没有一样的时候,就适配到下一级,比如values-port-(如果有而且是最接近目标的话),如果还没有,一直向下,最后起码能适配到values这个没有限定符的。这里现在只考虑竖屏的时候(横屏就是增加land限定符,而且数值变化太大,布局也可能需要专门去写,适配的原理还是一样的,这里就以竖屏为例)根据以下的例子:1.UI给我们做了一套的图片,通常将该分辨率的图片放在drawable-xxhdpi的文件夹下,应为通常分辨率为的屏幕都是xxhdpi(480dpi)的。2.这时候,图片上有一个90x30(px)的控件,在的机子的布局里面根据换算方法转换成30x10(dp)而xhdpi(320dpi)的上是多少呢?设在该屏幕上的长为A像素(px),根据比例式,A/720=30/1080,那么就知道A为20px,那么根据换算公式,dp还是10!3.我们再来看看两个机子它们的sw是多少dp?选短边计算,=360,720/320/160=360,那么结合第二点来看,只要sw相同,无论具体的在屏幕上显示的px是多少,dp都是相同的,dp相同,代表视觉大小是相同的,意味着我们看到的布局效果是一样的,适配解决!所以我们只需要使用规则给values文件夹命名如下:values-swXXXdp,就可以了。大概像这样:
values文件夹命名
可能有人有疑问了,那么如果遇上一些超级奇葩的厂家给机子设置了很奇葩的dpi值呢,单靠这个规则就真的OK吗?譬如:遇上分辨率为,但dpi是mdpi的屏幕时,这台机子的尺寸就是短边=1080dp,那么我们只需要建立一个values-sw1080dp的文件夹,具体的dp值就是控件长的px值B = 30/ = 30,dp = 30 / (160/160 )= 30,这并没有什么问题。其实可以看出来,这不是分辨率等比缩放的写法吗?只不过把等比缩放之后的分辨率再根据换算方法将px换成dp罢了。但是!分辨率可以有无穷多种,而以下是可以使用的通用屏幕尺寸的一些值:1.320,针对以下屏幕配置的设备:240x320ldpi(QVGA手持设备)320x480mdpi(手持设备)480x800hdpi(高分辨率手持设备)2.480,针对480x800mdpi的屏幕(平板或手持设备)3.600,针对600x1024mdip的屏幕(7英寸平板)4.720,针对720x1280mdip的屏幕(10英寸平板)注意:当应用程序提供了多个带有不同值的最小宽度限定符资源目录时,系统会使用最接近(不超出)设备最小宽度的那个资源。这个限定符被添加在API级别13中。还要看android:requiresSmallestWidthDp属性,它声明了与你的应用程序兼容的最小的最小宽度,并且smallestScreenWidthDp配置字段会持有这个设备最小宽度的值。那么我们的灵活性就大大提高的同时,相对于少则十几多则数十的分辨率种类,会使用近似值的sw-XXXdp写法就只需要少于十种的就可以搞定了。当然,按照前面说的限定符规则,在sw-XXXdp的基础上,我们还可以加上版本号,屏幕方向去针对某些系统版本的手机或者平板,同样是比使用分辨率的少很多。最后的问题就是就算要处理的只有几个dimens文件,但每个里面可能有十分多的值,一个个换算,新建,修改,简直是折磨人的,但既然我们知道了换算的规则,知道了dimens的调用规则,写个方法去修改xml的文件内容是很简单的,代码请下载(这里要感谢柯铿!):
他是一个很懒的人。
本文参考自: Google的官方权威适配文档 郭霖:Android官方提供的支持不同屏幕大小的全部方法 Stormzhang:Android 屏幕适配 鸿洋:Android 屏幕适配方案 凯子:Android屏幕适配全攻略(最权威的官方适配指导);简书作者:Carson_H...
前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文档 郭霖: Android官方提供的支持不同屏幕大小的全部方法 Stormzhang:Android 屏幕适配 鸿洋:Android 屏幕适配方案 凯子: A...
Android屏幕的适配,是每一个Android工程师在开发过程中都会遇到的恼人的难题,其实我们看一下android设备就知道了,千奇百怪,万种变化,在适配的时候就有点怵. 屏幕适配的原因: 由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对And...
屏幕适配 屏幕适配的概念 碎片化既是 Android 的优势和弱点,也是开发者们头疼的问题,同时也为 Android 的全球影响力提供了基础。Android 设备的外形和尺寸各不相同,性能水平和屏幕尺寸也都大不相同。此外,有许多不同版本的 Android 在任何时候都同时处...
版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的...
七天连续打卡完成
初二的时候,班里来了一位转校生,女生,瘦瘦高高的,单眼皮,笑起来淡淡的。她转校第一天上的第一堂课是英语课,课上的内容是老师把一样东西放在某位同学的桌子上,然后选一位同学去找,用英语描述在第几排,第几条,找什么东西,那时候的我们大多数都是从初一才开始接触英语,所以能理解这句话...
总体结构: Skip-gram模型的目标函数是最大化: 对于Skip-gram,更大的context window 可以生成更多的训练样本,获得更精确的表达,但训练时间更长。 Trick:1).Hierarchical SoftmaxThe main advantage i...
6:30分送孩子进校后。 06:55顺铁路徒步到发兴寨,一路赏景。 08:50返回家中,开始了修枝剪叶伺候花草,花儿开得美,在朋友圈欢呼半天…… 10:20 偶得一小诗。 余下的时间打扫小窝,为蠢汪洗澡…… 累、累、累……。 天天都像星期六,我可不愿意,宁愿上班去。 一面墙...
我叫李月,外号阿喵,大学二年级女生,兴趣爱好广泛,兼职网络写手。我的人生理想就是别人见到我只说三句话:第一,你不就有几个臭钱吗;第二,你找个好老公了不起啊;第三,你怎么瘦成这个鬼样子。 有人说,只要努力,梦想就一定会实现。而我最大的梦想就是变成一个拥有事业线和S线的绝世美女...在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
标签:至少1个,最多5个
首先举个例子,iphone6s的像素分辨率为ppi,4.7英寸。如图下面我们一个一个来解释。
326ppi代表的就是像素密度(pixels per inch),指的是每英寸的长度上排列的像素点数量。
a.屏幕分辨率
首先,代表的是屏幕分辨率,也就是说iPhone6s的屏幕是由纵向像素1334*横向像素750个像素点组成。单位pixel。
b.物理尺寸
如图可以知道,4.7英寸也就指的是iPhone6s屏幕对角线的物理长度。1英寸是一个固定长度,等于2.54厘米。
B.像素密度的计算
像素密度=对角线分辨率/屏幕尺寸。如下计算:勾股定理算出对角线的分辨率:√(?)
对角线分辨率除以屏幕尺寸:√(?)/4.7≈440dpi。
C.直观感受理解像素密度
像素密度越高,代表屏幕显示效果越精细。Retina屏比普通屏清晰很多,就是因为Retina屏幕像素密度高。最明显的就是iPhone 3GS和iPhone 4的区别。屏幕尺寸一样因为屏幕分辨率相差一倍所以屏幕像素密度也相差一倍。显示效果如下如图看出iPhone4显示要比iPhone 3gs清晰的多。根本原因是因为iPhone3gs的1个像素点的大小相对于iPhone4来说等于它屏幕的4个(2x2)像素大小。如下图。
注意注意注意:这里的1像素指的是物理设备的1个像素点。也就是说不同像素密度的物理设备的一个像素点的大小是不一样的。也就意味着对于物理设备屏幕的单个像素点的大小是不是一个固定的大小。用稍微专业一点的话来说就是,单个的设备像素的大小是不定的。
重要概念理解
上面我们讨论的是关于物理设备的像素密度(再次强调:这里的像素就是物理像素或者说是设备像素,对应于像素密度不同的设备具体像素点的大小都是不一样大的。像素密度越大,像素点越小,显示的细节就越多越丰富。反之则情况刚好相反)。那么接下来我们要说的几个重要概念是什么呢?我们先从css像素与设备像素开始讨论。
A.css像素和设备像素
首先我们需要明确一点:在我们编写CSS的时候的px和设备自身的px是没有任何关系的。
css pixel:浏览器使用的抽象单位,主要用来在网页上绘制内容。
device pixel:显示屏幕的最小物理单位,每个dp包含自己的颜色、亮度。
既然css pixel与device pixel没有任何关系,那么我们在编写页面时怎么设置多宽(用多少的css像素)的网页才能适配不同的设备(才能覆盖设备的像素)呢???为了解决这个问题,我们再引入一个重要的概念viewport。
B.viewport
viewport翻译过来就是视口的意思。viewport有两种,一种是layout viewport,还有一种是visual viewport。这两种viewport的大小都是以css像素进行绘制的。
1.layout viewport:把layout viewport想象成为不会变更大小和形状的大图。现在想像你有一个小一些的框架,你通过它来看这张大图。(可以理解为「管中窥豹」)这个小框架的周围被不透明的材料所环绕,这掩盖了你所有的视线,只留这张大图的一部分给你。你通过这个框架所能看到的大图的部分就是visual viewport。当你保持框架(缩小)来看整个图片的时候,你可以不用管大图,或者你可以靠近一些(放大)只看局部。你也可以改变框架的方向,但是大图(layout viewport)的大小和形状永远不会变。计算:document.documentElement.clientWidth/Height
2.visual viewport:是页面当前显示在屏幕上的部分。用户可以通过滚动来改变他所看到的页面的部分,或者通过缩放来改变visual viewport的大小。计算:window.innerWidth/Height
当你缩小或者放大页面时,visual viewport的大小会发生变化。当你放大页面,能看到页面的内容也就越少,当你缩小页面能看到的页面内容也就越多。根本上是因为当你缩小或者放大网页时,网页上的css像素就变小或者变大了,但是layout viewport的大小是不变的。也就意味着,当css像素变大时,layout viewport中能容纳的单位css像素也就变少了,因此visual viewport的大小就变小了。反之也是一个道理。这个过程中,layout viewport并不会发生任何变化(当然,在窗口的大小发生变化的时候,layout viewport的大小也会随之变化,窗口越大能够容纳的CSS像素越多,layout viewport也就越大,反之亦然)。如图1:11:1.3
因此可以把layout viewport想象成为一个虚拟的"窗口"。窗口可大于或小于设备的可视区域(也就是visual viewport),一般设备默认layout viewport大于visual viewport。这样不会破坏没有针对设备的浏览器优化的网页的布局,用户可以通过平移和缩放来看网页的其他部分。
部分机型默认layout viewport:你也可以通过上面给出的document.documentElement.clientWidth/Height在chrome控制台中进行测试layout viewport的大小。
根据以上的讨论我们知道了:
我们写页面时是在layout viewport上进行的布局,用的是css像素,可以由document.documentElement.clientWidth/Height计算。(与程序员相关)
各种设备的屏幕分辨率表示的像素是设备像素可以由screen.width/height计算。(与硬件产品相关)
我们观看页面时是通过visual viewport进行观看的,用的也是css像素,可以由window.innerWidth/Height来计算。(与用户行为相关)
设置layout viewport大小
通过上面的讨论,我们知道,屏幕的分辨率的设备像素与我们编写页面时使用的CSS像素并没有什么直接关系。而且问题1.从大的方面来看:首先,我们编写的CSS是在layout viewport中绘制。其次,从下图可以看出,设备分辨率和layout viewport也没有什么直接关系问题2.从小的方面来看:首先, CSS像素在不放大和缩小的情况下,在任何设备中的1个CSS像素都是一样大的。其次,不同像素密度的设备,设备屏幕(与像素密度有关)中的1个设备像素的大小是各不相同的。可以知道,在没有进行任何设置的情况下,单位设备像素与单位css像素也扯不上什么关系。
设置viewport
如果我们想要自己写出来的页面在各个设备下都工作良好,就会出现困难?因此为了让他们之间扯上关系,我们便需要做一些设置。像下面这样
&meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"&
每个设置对应的意思
这样设置了之后,我们的layout viewport的大小也就与设备大小相等了(高度上也是相等的)。如图。既然它们相等那么可以推理得出此时的单位设备像素和单位CSS像素在缩放比例为1的情况下,也就是相等的了。
这时候我们显示的页面的屏幕和我们布局页面的大小是一样的,那么在进行布局的时候,也就容易了很多。
知道了这样设置后,对于我们布局来说问题也就不大了。1.我们在layout viewport上布局,这样设置后,layout viewport的大小等于设备屏幕的大小2.不同像素密度的设备的单位设备像素大小的变化也就会同步引起单位CSS像素大小的变化。也就是说,我们在用CSS编写网页的时候,在不同像素密度的设备中的css像素大小是不一样的是变化的。(这里一定要理解)。
但是,这里还有一个问题,iphone6 plus 414这个宽度是从哪里来的呢?
像素密度与转换系数
Android和IOS都会通过转换系数让控件适应屏幕的尺寸。而这个转换系数就和最开始讲的像素密度PPI有关。不同的PPI转化系数不同。如图由图可以知道iphone6 plus的屏幕分辨率为,转化系数为3。。414便由此而得,这是设备自身进行的转化,而我们设置的layout viewport的大小也就等于设备自身转换后的大小。
4 收藏&&|&&48
你可能感兴趣的文章
49 收藏,8.8k
13 收藏,817
9 收藏,517
本作品采用 署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可
我就给大家最简单的答案 android目前已经统一到360为基准宽度 mhdpi为1x hdpi是1.5x xhdpi是2x xxhdpi是3x xxxhdpi是4x 不过我这里说nx是相对于本平台统一规范基准宽度 ios端则是320 至于iphone6是375 iphone 6plus是414 这实际在使用中不存在 你们只要记住iphone6 2x iphone6s 3xipad的基准宽度为768 ipad 高清屏 目前为2x 不过会有3x 未来也许有 不过有必要说一下 同为2x 平板和手机其实是有区别的 android这边比较乱 还有pc 如何使ie8使用她们 请关注我专栏
我就给大家最简单的答案 android目前已经统一到360为基准宽度 mhdpi为1x hdpi是1.5x xhdpi是2x xxhdpi是3x xxxhdpi是4x 不过我这里说nx是相对于本平台统一规范基准宽度 ios端则是320 至于iphone6是375 iphone 6plus是414 这实际在使用中不存在
你们只要记住iphone6 2x iphone6s 3x
ipad的基准宽度为768 ipad 高清屏 目前为2x 不过会有3x 未来也许有 不过有必要说一下 同为2x 平板和手机其实是有区别的
android这边比较乱 还有pc 如何使ie8使用她们 请关注我专栏
我还是有点一点不理解 我们设置了&meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"& 让layout viewport = 设备屏幕的大小 但是设备的分辨率不同,导致像素还是不同呀
我还是有点一点不理解 我们设置了&meta name=&viewport& content=&width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no&& 让layout viewport = 设备屏幕的大小 但是设备的分辨率不同,导致像素还是不同呀
layout viewport的大小等于设备屏幕的大小也就意味着:document.documentElement.clientWidth/clientHeight=screen.width/height。恩。宽度和高度都相等也就意味在同样的一台设备屏幕上要显示一样的像素点,这个时候用css像素描绘的layout viewport中的单位像素点也就自然和设备屏幕中的单位设备像素点相等了。也就是说,但你设置了&meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"& 后,单位CSS像素点的大小也就是随着不同设备的像素密度的单位设备像素大小而变化,因为从微观来讲,他们这时候也就是相等的了。
layout viewport的大小等于设备屏幕的大小也就意味着:document.documentElement.clientWidth/clientHeight=screen.width/height。恩。宽度和高度都相等也就意味在同样的一台设备屏幕上要显示一样的像素点,这个时候用css像素描绘的layout viewport中的单位像素点也就自然和设备屏幕中的单位设备像素点相等了。也就是说,但你设置了&meta name=&viewport& content=&width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no&& 后,单位CSS像素点的大小也就是随着不同设备的像素密度的单位设备像素大小而变化,因为从微观来讲,他们这时候也就是相等的了。
好的,明白了 谢谢
好的,明白了 谢谢
非常好,看懂了
非常好,看懂了
dpi 和 ppi 什么不同呢?B中计算的是“对角线分辨率除以屏幕尺寸:√(?)/4.7≈440dpi。” ppi的大小?A又说 像素密度是326ppi这两个数据差的有点远啊
dpi 和 ppi 什么不同呢?
B中计算的是“对角线分辨率除以屏幕尺寸:√(?)/4.7≈440dpi。” ppi的大小?
A又说 像素密度是326ppi
这两个数据差的有点远啊
分享到微博?
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。}

我要回帖

更多关于 手机屏幕像素密度 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信