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

来源:互联网 发布:平价蓝光机 知乎 编辑:程序博客网 时间:2024/04/30 14:15

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

我主要介绍,通过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:120
dpi低分辨率的图片,如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,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源




以上方法只是个人的理解之上写出来的,如果有不对的或是更好的建议,欢迎大家指导,谢谢!


0 0
原创粉丝点击