当前位置: 代码迷 >> Android >> (转)android 多屏幕的支持有关问题
  详细解决方案

(转)android 多屏幕的支持有关问题

热度:108   发布时间:2016-05-01 14:20:30.0
(转)android 多屏幕的支持问题

?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),?ldpiMedium density (160),?mdpiHigh 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?的数值设置将不引起屏幕的变化
  相关解决方案