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

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

我主要介绍,通过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,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源




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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值