android 多屏幕的支持问题

<!-- /* 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
  • QVGA (240x320), 2.6"-3.0" diagonal
Normal screen
  • WQVGA (240x400), 3.2"-3.5" diagonal
  • FWQVGA (240x432), 3.5"-3.8" diagonal
  • HVGA (320x480), 3.0"-3.5" diagonal
  • WVGA (480x800), 3.3"-4.0" diagonal
  • FWVGA (480x854), 3.5"-4.0" diagonal
Large screen
  • WVGA (480x800), 4.8"-5.5" diagonal
  • FWVGA (480x854), 5.0"-5.8" diagonal


(表 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 的数值设置将不引起屏幕的变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值