导航:首页 > 操作系统 > android布局超过屏幕

android布局超过屏幕

发布时间:2024-12-12 00:51:32

android 的界面布局 怎么适应不同分辨率的手机 以及横竖屏间的切换

各种Android操作系统的手机简直就是琳琅满目,屏幕分辨率的差异可想而知。目前比较主流的有WVGA=800x480,HVGA=480x320,另外的还有QVGA=320x240。当然还有魅族M9的DVGA=960x640,还有蛋疼的摩托罗拉的FWVGA=854x480。

其实,在你layout的xml文件中,编写的时候是不是用了许多的padding呢?如果是,那你就蛋疼了。因为这样的布局永远是无法适应所有手机屏幕的。

正确的做法应该是使用的是weight属性。将你控件的layout中的width、height设置为fill-parent,不要使用wrap——content。因为wrap-content的大小是不固定的。而weight(权重)这个属性很好的解决了这个问题。

当包裹在控件外面的Layout的width、height属性都设置为fill-parent时,可以利用weight的反比特性。即如果控件A设置weight为5,控件B设置weight为7,那么A所占的空间为5/(5+7),B所占的空间为7/(5+7)。这样的反比属性对任何分辨率下的手机都是合适的。

当然,字体就不行了。那怎么保证字体能够跟布局一样能够自适应呢?
呵呵,很简单,就是在你的res文件夹中创建一个文件夹,叫做values-320x240。其中320x240是你手机屏幕的分辨率,根据你手机屏幕的情况做不同的命名,例如values-800x480。在该文件夹下创建一个dimens.xml文件,定义各种字体的大小。那么系统就会自动根据你手机屏幕的分辨率去调用响应的文件夹。

另外,值得提醒的是,记得在你默认的values文件下的dimens.xml文件中也要写上相应的字体大小哦,因为当系统无法认识你手机屏幕大小的时候,它会自动去找你默认文件中的

东西,没有写的话程序会崩溃。

************************************************************分割线************************************************************

在看下面内容之前首先请看你SDK文档中以下这篇文章

其实google在分辨率适应性的东西已经写的很清楚了,只是我们很多人没去看而已

以下是结论:
屏幕分辨率:1024x600
density:1(160)
文件夹:values-mdpi-1024x600

屏幕分辨率:1024x600
density:1.5(240)
文件夹:values-hdpi-683x400 由1024/1.5 600/1.5得到,需要四舍五入。

屏幕分辨率:800x480
density:1(160)
文件夹:values-mdpi-800x480

屏幕分辨率:800x480
density:1.5(240)
文件夹:values-hdpi-533x320 由800/1.5 480/1.5得到,需要四舍五入。

以此类推
一般情况下需要创建出values 、values-mdpi 、 values-hdpi文件夹,以备在一些没有规定的尺寸屏幕上找不到资源的情况。

然后在里面使用不同的dimens文件,Layout中不要使用显示的数字,所有的尺寸定义全都援引dimens里面的内容。

这样能够保证深度UI定制的情况

另外在工程的default.properties中如果split.density=false,则分辨率适配的时候文件夹命名不需要与scale相除


屏幕分辨率:800x480
density:1.5(240)
文件夹:values-hdpi-800x480

************************************************************分割线************************************************************

关于dimens

位置:res\values
单位:px Pixel 以画面的像素为单位;
in Inches以画面的多少英寸为单位;
mm Millimeter以画面的多少毫米为单位;
pt Points 一点为1/72英寸;
dp或dip Density-indepentdent 为160dpi屏幕的一个pixel;
ap Scale-independent Pixels 随屏幕尺寸改变的一个pixel;

1.drawable: 存放不同分辨率对应图片

在2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:

(1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)

(3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)

系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

在2.1之前的版本可以通过drawable-800x480, drawable-480x320 等方式实现。

2:layout:放置对应不同分辨率的布局

创建不同的layout文件夹, layout-800x480,layout-480x320, 系统会根据屏幕的大小自己选择合适的layout进行使用。

另外:可以在res目录下建立layout-port和layout-land两个目录,里面分别放置竖屏和横屏两种布局文件。

下面列出主流的android机型有:

240x320低端,国产入门级采用,例如HTC G4,G8
320x480中端,大部分基于此分辨率,例如HTC G1,G2,G3,G6, MOTO ME600, SAMSUNG I7500
480x800中高端,大部分基于此分辨率,例如HTC G5,G7, MOTO MT810
480x854MOTO特有的,例如Droid, Milestone, XT800
960x640, 魅族M9

② android布局文件怎么适配不同大小

Android中一个layout想适配各种屏幕尺寸那么你需要按以下规则去写layout:

  1. 尽量使用wrap_content、match_parent、weight 来规定layout的大小

  2. 要确保布局的灵活性并适应各种尺寸的屏幕,应使用 “wrap_content” 和 “match_parent” 控制某些视图组件的宽度和高度。

  3. 使用 “wrap_content”,系统就会将视图的宽度或高度设置成所需的最小尺寸以适应视图中的内容,而 “match_parent”(在低于 API 级别 8 的级别中称为 “fill_parent”)则会展开组件以匹配其父视图的尺寸。

  4. 如果使用 “wrap_content” 和 “match_parent” 尺寸值而不是硬编码的尺寸,视图就会相应地仅使用自身所需的空间或展开以填满可用空间。此方法可让布局正确适应各种屏幕尺寸和屏幕方向。

  5. 如果某些地方必须要规定控件的大小,那么要使用dp 或者 dip单位

  6. 字段必须使用 sp单位

  7. 将不同的图片放到不同的drawable目录下,分辨率的匹配规则如下:

drawable-mdpi 320 * 480

drawable-hdpi 480*800

drawable-xhdpi 720 * 1280

drawable-xxhdpi 1080 * 1920

drawable-xxxhdpi 1080+

③ android界面布局,如何布局一个跟分辨率无关的,自动换行的界面

刚才打了一遍,结果提交的时候浏览器崩溃了,真悲剧!再重打一遍吧。
首先,我们的布局文件*.xml都是放在android的工程下的layout这个目录下的。其实。android还支持
横屏和竖屏切换的时候,系统调用不一样的布局xml。比如你的一个activity用到的布局文件叫做main.xml 你实现一个竖屏的main.xml放在layout-port这个目录下 实现一个横屏main.xml放在layout-land这个目录下。(这两个目录自己建)系统会自动去这两个目录中找到对应的xml文件。同样的对于不同分辨率的屏幕。系统也支持。比如一个320*480 一个600*1024.你新建一个layout-320*480 实现一个main.xml让它一行显示三个无间隔,将这个xml放进去。再实现一个一行放四个有间隔的xml放到layout-600*1024 这个文件中 就ok啦。 也可以和横竖屏结合这用 例如
layout-port-320*480 。你试试看,有问题hi我。

阅读全文

与android布局超过屏幕相关的资料

热点内容
云服务器如何提交作业 浏览:875
dvipdf 浏览:827
苹果app怎么移动不到app哪里 浏览:371
解压文件时密码怎么用 浏览:172
程序员怎么规划自己的未来 浏览:876
我的世界我18服务器地址大全 浏览:732
程序员行业产业链 浏览:56
医保app授权在哪里 浏览:767
宝可梦大探险为什么没有服务器 浏览:391
哪里有国网App绑定 浏览:914
解压小黄鸭脏了怎么清洗 浏览:958
前端程序员做哪些副业 浏览:248
一线城市女程序员 浏览:588
修改窗口文件夹显示方式为缩略图 浏览:745
微信加密货币封号 浏览:707
java程序员实习生 浏览:955
天马行空编程视频教学 浏览:451
压缩机控制图 浏览:995
莱芜hypermill四轴编程 浏览:432
买双色球蓝球摡率算法 浏览:747