Android不同分辨率图片实际显示大小的计算
来源:互联网 发布:php连接数据库语句 编辑:程序博客网 时间:2024/05/20 08:24
由于市场上Android手机种类繁多,Android应用多分辨率适配工作必不可少。
一般来说,屏幕分配分为,屏幕尺寸,屏幕方向,屏幕像素密度。
(1)屏幕尺寸
屏幕尺寸是根据屏幕大小进行匹配,例如small,normal,large,xlarge等等这一类匹配目前已经很少使用。
(2)屏幕方向
屏幕方向分为port竖屏和land横屏两种,通常开发时如果支持横屏显示,都会另写一套横向的布局文件。
(3)屏幕像素密度
屏幕像素密度指单位长度屏幕显示的像素,即常说的dpi(dots per inch),每英寸点数。密度越高显示画面就越清晰。
Android根据像素密度按区间范围分成几种:
当新建一个Android工程时,在res目录下可以看到drawable-xxx目录,就是对应不同像素密度的资源。系统会优先从该目录中寻找图片,如果找不到会从其他目录寻找。因此对应不同密度设备,我们需要为其准备不同画质的图片,以便获得更好的效果。
Android将mdpi像素作为基准线进行匹配,dp与px的换算关系如下,
px= dp * (dpi / 160 )
官方建议使用dp作为布局单位,这样不同的dpi设备上,换算出来的px也会相应的自适应。
为了更清楚地看清不同dpi机型上的px的换算规律,做了以下实验。
测试机型:
(1) 320dpi机型 A
(2) 160dpi机型 B
测试图片:
一张48×48的图片分别存放在drawable,drawable-mdpi,drawable-hdpi目录下,图片名称分别为
test1.png,test2.png,test3.png。
实验结果:
机型A上面显示效果,
test1.png 显示大小为 96×96像素
test2.png 显示大小为 96×96像素
test3.png 显示大小为 64×64像素
机型B上面显示效果,
test1.png 显示大小为 48×48像素
test2.png 显示大小为 48×48像素
test3.png 显示大小为 32×32像素
实验结论:
通过如上实验,我们知道一张图片实际显示大小与机型dpi和drawable文件夹dpi均相关。
手机显示像素 = 图片实际像素尺寸 × 机型DPI / 所在资源目录DPI
例如,在320dpi的机型上,将48×48像素的图片放入drawable-hdpi目录,该图片实际显示像素 = 48* 320/ 240 = 64像素。
所以为了获得更好的显示效果,每种dpi分辨率的机型,均需要搭配一张对应尺寸图片,以防止被缩小或者拉大。
- Android不同分辨率图片实际显示大小的计算
- Android不同分辨率图片实际显示大小的计算
- Android不同分辨率图片实际显示大小的计算
- android linearLayout 根据不同的分辨率自动调整 显示大小
- Web页面根据不同的分辨率显示不同的图片
- 下载的图片根据不同分辨率改变大小
- JSP显示不同大小的图片
- iphone的icon的设置(分辨率显示的比实际图片的分辨率低)
- 如何计算初始图片的大小?像素,分辨率
- Android:自适应不同分辨率的屏幕大小、方向和不同分辨率的字体大小
- 网页图片显示分辨率与实际分辨率不一样
- 计算文本的实际大小
- 自动适应—根据分辨率大小可以相应显示不同图片(代码)
- Android 不同分辨率下字体自适应大小
- 【android】图片放错文件夹引起显示大小不同的原因与屏幕适配原理
- Android平台不同分辨率下的一些显示参数
- android根据不同的分辨率来读取图片
- 自动生成Android不同分辨率下的图片
- codeforces 721 Passwords
- 解决sublime在编译出错或警告时额外显示系统path的问题
- DFT,FFT和卷积(笔记)
- lucene入门及安装配置
- 心路杂谈
- Android不同分辨率图片实际显示大小的计算
- iOS开发常用技巧-常见问题篇
- 【Java】Object类的方法
- nameidata路径查找辅助结构
- java的菜单控件使用
- laravel 5.2 学习笔记
- BSOJ 4852:比赛 暴力优化
- codz.me's blog
- 【hihocoder】#1094 : Lost in the City