<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} span.MsoIntenseEmphasis {mso-style-priority:21; mso-style-unhide:no; mso-style-qformat:yes; color:#4F81BD; mso-themecolor:accent1; font-weight:bold; font-style:italic;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->
在 android 中分为 small, normal, large 3 个大小的屏幕, density 分为 240,160, 120 3 个层次。分辨率有 1024*600 , 320*480 , 480*800 等等。
什么是分辨率:
是整个屏是多少点, 比如 800x480 ,它是软件的显示单位。
什么是 density :
density 表示每英寸有多少个显示点 ( 逻辑值 ) ,它的单位是 dpi : dot per inch ,通常屏幕大时, density 就大,屏幕小时, density 就小。
如表 1 android 如何区分屏幕的大小:
Low density (120), ldpi | Medium density (160), mdpi | High density (240), hdpi | |
Small screen |
| ||
Normal screen |
|
|
|
Large screen |
|
(表 1 )
android 如何支持多屏幕 :
不管对大屏幕和中等屏幕来说如果 android:anyDensity="false" ,android:normalScreens (或 largescreen ) ="false" ,Android 都会把 320*480 160(density) 作为基准屏幕绘画 , 假如我们面对 1024*600 ,240(density) 且 android:anyDensity="false",android: largescreen=”ture”, 那么为了显示 160density 的效果,分辨率必须降低 , 降低的比例为 240/160=1.5 即 683*400 160(density) ( 由上面分辨率和 density 的定义可以知道 ) 。
当 android:anyDensity="false",android:largescreen=”false” 时 , 会画出 320*480 , 160(density) 的图像出来,因为 320*480 160(density) 不会填满整个屏幕,所以多出的地方会被填以黑色。至于比例是多少 我个人认为在 1024*600 240 上长和宽为 1024/240=4.2 和 600/240 =2.5 ,而 320*480 160(density) 上长和宽为 480/160=3 和 320/160=2 ;很明显没有填满。
当 android:anyDensity="true" android , largescreen=”false” 时,很明显会由 320*480 , 160(density) 的画面上 *1.5 变成 480*720 , 240(density) 的画面。
当屏幕为 normalScreens 时,且 normalScreens=”false” 则屏幕不变。而屏幕的分辨率只是和 density 相关 ( 因为基准屏幕就是 normalscreens) 。即分辨率的比例为 240/160 或 160/160 (具体看当前屏幕的 density )。
当屏幕为 smallscreen 时, android:smallScreens 和 android:anyDensity 的数值设置将不引起屏幕的变化