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,即使在文件夹下拥有相同资源,应用不会自动地去相应文件夹下寻找资源
以上方法只是个人的理解之上写出来的,如果有不对的或是更好的建议,欢迎大家指导,谢谢!
相关文章推荐
- Android开发中如何适配不同屏幕大小(1)
- 安卓APP开发中的屏幕适配问题如何解决?
- Android开发-01-不同分辨率的设备文字大小适配
- Android是如何在不同屏幕上适配图片的 -- 或控件大小
- Android屏幕大小适配问题解决
- Android屏幕大小适配问题解决
- Android屏幕大小适配问题解决
- Android是如何在不同屏幕上适配图片的 -- 或控件大小
- Android是如何在不同屏幕上适配图片的 -- 或控件大小
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- cocos2d-x iOS和Android同步开发 手机设备适配问题解决
- 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
- Android是如何在不同屏幕上适配图片的 -- 或控件大小
- Android屏幕大小适配问题解决
- Android屏幕大小适配问题解决
- Android屏幕大小适配问题解决
- Android屏幕大小适配问题解决
- android不同屏幕大小手机的适配问题
- Android屏幕大小适配问题解决