android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图
屏幕适配
首先理解下各个尺寸单位代表的意思
- 尺寸含义
- px: 像素
- dip: Density-independent pixel 独立像素密度
- dpi: dot per inch 分辨率
- ppi: pixel per inch 指每英寸所拥有的像素
ppi计算:(宽度的平方 + 高度的平方)开根号 / 对角线的长度 - Density: density值表示每英寸有多少个显示点,与分辨率是两个概念
density计算:dpi / 160 密度值
各个单位之间的互换
公式: dp = px / (dpi / 160) px = dp * (dpi / 160) dp = px / denisity or dp = px / (dpi / 160)
- dpi: 是厂商定义的常量值 = 根据勾股定理开根除4
ldpi: dpi 120 –> 240 * 320
mdpi: dpi 160 –> 320 * 480
hdpi: dpi 240 –> 480 * 800
xhdpi: dpi 320 –> 720 * 1080 如:(720*720+1080*1080)开根号 除 4 = 320dpi
xxhdpi:dpi 380 –>1080p 1920*1080 高清 px :手机像素 = dp * (dpi / 160)
ldpi: 120px–> dp = 120 / (120 / 160) = 160dp
mdpi: 160px–> dp = 160 /(160/160) = 160dp
hdpi: 240px–> dp = 240 /(240/160) = 160dp
xhdpi:360px–> dp = 360 / (320/160)= 180dpdensityDip:值表示每英寸有多少个显示点 = px / denisity
QVGA: density=0.75 densityDpi=120 QVGA(240*320)
HVGA:density=1.0 densityDpi=160 HVGA(320*480)
VGA:density=1.0 densityDpi=160 VGA(480*640)
WVGA:density = 1.5 densityDpi=240 WVGA(480*800)
WQVGA:density=2.0 densityDpi=120 WQVGA(240*400)而当densityDip=160时,1dp=1px。
- dpi: 是厂商定义的常量值 = 根据勾股定理开根除4
设计资源紧张怎么办?
在现在的App开发中,基本都会有iOS和Android版本,有些公司为了保持App不同版本的体验交互一致,还有些公司的设计资源可能比较紧张,这些情况下iOS和Android版本基本是一个设计师主导,而大多数情况下设计师可能更会以iPhone手机为基础进行设计,包括后期的切图之类的。这个时候身为Android开发人员你是否还要求设计师单独为Android端切一套图片资源呢?这会让你们的设计师崩溃的,下面就来告诉一个项目中总结的更棒的方法。
出一套图,有人肯定会觉得使用最新的iPhone6(6s和6的尺寸以及分辨率都一样)来做原型设计,而iPhone6的屏幕分辨率为1334×750, 屏幕尺寸为4英寸,根据勾股定理(a^2 + b^2 = c^2)1334^2+750^2, 然后再对其开根号可求出屏幕对角线的分辨率为:1530,除以4可得出iphone6的dpi:1530/4≈382 可以看出iPhone5的屏幕的dpi约等于380, 刚好属于xhdpi,但是好的产品一般是以用户群体来作标准的,不是所有人都用得起i6,用得起6p这些高清屏手机;
目前我们公司是以iPhone5(5s和5的尺寸以及分辨率都一样)来做原型设计,而iPhone5的屏幕分辨率为640X1164, 屏幕尺寸为4英寸,根据勾股定理算出iPhone5分辨率为:1328,dpi为:320, 刚好属于xhdpi; 并且xhdp在xxhdpi上的显示效果也相差不多;
xhdpi是目前最大市场
一般情况下只需要提供一套大的dpi的图片就ok了,现在市面手机分辨率最大可达到1080X1920的分辨率,如Nexus6p,2560×1440,dpi更是高于xxhdpi,但是毕竟还没普及,目前市面上最普遍的高端机的分辨率还多集中在720X1080范围,也就是多集中在xhdpi,所以目前来看xhpdi规格的图片成为了首选。当然随着技术规格的提高以后发展,以后可能市场上xxdpi的手机会越来越普遍,但这是后话。
- .因此得出结果
出图:效果图(主要就1套)
xhdpi: 720 * 1280
图片的简单适配
布局适配
不同的手机的图片放到 对应的分辨率的目录下drawable-xxxx
在layout的后面添加xxx,添加的布局名称要要一致ldpi: dpi 120 –> 240 * 320
mdpi: dpi 160 –> 320 * 480
hdpi: dpi 240 –> 480 * 800
xhdpi: dpi 320 –> 720 * 1080动态的布局适配
一般屏幕适配也有通过margin或者权重来去做屏幕的适配
android 屏幕适配,hdpi,xhdpi,xxhdpi理解,常见出图的更多相关文章
- 【原】android【手机】屏幕适配解决方案,完美适配适配hdpi,xhdpi,xxhdpi的做法。
1.先说要怎么做,后面在慢慢讲解: 2.现在来讲解为什么要放这三套: 这三套其实按内容来说就两种,为什么这两种可以适配hdpi,xhdpi,xxhdpi呢? 那么两种类型的dimens就可以了,为什么 ...
- 【收藏】Android屏幕适配全攻略(最权威的Google官方适配指导)
来源:http://blog.csdn.net/zhaokaiqiang1992 更多:Android AutoLayout全新的适配方式, 堪称适配终结者 Android的屏幕适配一直以来都在折磨着 ...
- Android屏幕适配全攻略(最权威的官方适配指导)(转),共大家分享。
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因.重要概念.解决方案及最佳实践,我相信如果你能认真的学习 ...
- Android屏幕适配全攻略(最权威的官方适配指导) (转)
招聘信息: Cocos2d-X 前端主程 [新浪微博]手机客户端iOS研发工程师 20k-40k iOS 开发工程师 iOS高级开发工程师(中国排名第一的企业级移动互联网云计算公司 和创科技 红圈营销 ...
- 【转】Android屏幕适配全攻略(最权威的官方适配指导)
原文网址:http://blog.csdn.net/jdsjlzx/article/details/45891551 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的 ...
- Android屏幕适配全攻略(最权威的官方适配指导)
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入 ...
- android屏幕适配详解
android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要 ...
- Android屏幕适配全攻略(最权威的官方适配指导)
摘自:http://www.cocoachina.com/android/20151030/13971.html Android屏幕适配出现的原因 在我们学习如何进行屏幕适配之前,我们需要先了解下为什 ...
- Android 屏幕适配:最全面的解决方案
转自:https://www.jianshu.com/p/ec5a1a30694b 前言 Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合: Google的官方权威适配文 ...
随机推荐
- 一道有趣的Twitter技术面试题
来自:http://blog.jobbole.com/50705/ 看下面这个图片” “在这个图片里我们有不同高度的墙.这个图片由一个整数数组所代表,数组中每个数是墙的高度.上边的图可以表示为数组[2 ...
- pdflush的工作原理
大家知道,在linux操作系统中,写操作是异步的,即写操作返回的时候数据并没有真正写到磁盘上,而是先写到了系统cache里,随后由pdflush内核线程将系统中的脏页写到磁盘上,在下面几种情况下,系统 ...
- 统计处理包Statsmodels: statistics in python
http://blog.csdn.net/pipisorry/article/details/52227580 Statsmodels Statsmodels is a Python package ...
- [Flask]学习杂记--模板
这个学习杂记主要不是分享经验,更多是记录下falsk的体验过程,以后做东西在深入研究,因为django之前用的时间比较长,所以很多概念都是一看而过,做个试验了解下flask的功能. flask中使用是 ...
- UIScrollView实现图片轮播器的无限滚动
简介 在现在的一些App中常常见到图片轮播器,一般用于展示广告.新闻等数据,在iOS内并没有现成的控件直接实现这种功能,但是通过UIScrollView的允许分页设置,可以实现滚动轮播的功能. 轮播原 ...
- 自定义AlertDialog(仿微信)
安卓自定义AlertDialog,原理很简单: AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create(); di ...
- SYBASE bcp用法及例子
BCP是SYBASE公司提供专门用于数据库表一级数据备份的工具. 语法: 语法如下:(可用 bcp – 得到) 常用参数说明: -b batch_size 指定所复制的每批数据中的行数.每个批处理作为 ...
- 【原创】Nginx+PHP-FPM优化技巧总结
php-fpm的安装很简单,参见PHP(PHP-FPM)手动编译安装.下面主要讨论下如何提高Nginx+Php-fpm的性能. 1.Unix域Socket通信 之前简单介绍过Unix Domain S ...
- iOS开发中的零碎知识点笔记 韩俊强的博客
每日更新关注:http://weibo.com/hanjunqiang 新浪微博 1.关联 objc_setAssociatedObject关联是指把两个对象相互关联起来,使得其中的一个对象作为另外 ...
- 03 RadioButton 单选按钮
>概念:从多个互斥选项中选择一个 如果是选项全部展开 RadioButton 不是展开的Spinner(下拉列表) >属性: android:checked="tr ...