您的位置:首页 > 移动开发 > Android开发

android开发如何更好的解决适配不同屏幕大小移动设备的问题

2013-12-26 14:38 1211 查看

解决这个问题的办法网上有很多,经过不断的查找资料、尝试、寻求帮助后,经过尝试之后初步整理出一种解决方法:理论的东西我就不多说了,主要说一下如何实现的问题

我主要介绍,通过drawable,layout,dimens.xml来解决适配的问题:

首先,需要弄清出需要适配的移动设备的基本情况,推荐使用“手机分辨率测试”这个软件,可以在360手机助手中查找下载。



测试结果如下:



从测试的结果可以看出,设备的密度dpi是320,应该是xhdpi

一般情况下的普通屏幕:ldpi是120dpi,mdpi是160dpi,hdpi是240dpi,xhdpi是320dpi

对于屏幕来说,dpi越大,屏幕的精细度越高,屏幕看起来就越清楚

其次,开始正式实现:

根据测试中dpi的结果,写不同的资源文件,一般情况下,
写一个layout文件夹,写一套布局文件;
根据需要适配的设备的dpi不同创建不同的drawable和values文件夹,如:

在下面的图片资源文件中存放不同分辨率的图片

drawable:主要放置xml配置文件或者对分辨率要求较低的图片

drawalbe-ldpi:120dpi低分辨率的图片,如QVGA
(240x320)

drawable-mdpi:160dpi中等分辨率的图片,如HVGA (320x480)

drawable-hdpi:240dpi高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

drawable-xhdpi:320dpi至少960dp x 720dp

drawable-xxhdpi:1920dpx1080dp



在面的资源文件夹中添加dimens.xml

values:

values-ldpi:120dpi

values-mdpi:160dpi

values-hdpi:240dpi

values-xhdpi:320dpi



在layout的布局文件中,各种间距宽度高度都不要写死成具体的数值,如
android:layout_width="300dp"(不推荐)

而是使用下面的方式来替代:



在对应的values文件下的dimens.xml中如下:



通过上面的方法之后,当需要适配其他屏幕设备的时候,不需要再去改动layout,只需要对dimens中的值进行调整就可以了。这样可以减少对代码的维护难度

最后:

在中Menifest中添加子元素

android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件夹中的资源。

相反,如果设为false,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源

以上方法只是个人的理解之上写出来的,如果有不对的或是更好的建议,欢迎大家指导,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: