android开发笔记之APP在不同的项目中适配(支持多种屏幕)
来源:互联网 发布:行楷 知乎 编辑:程序博客网 时间:2024/05/26 09:55
why:
最近在做一个APP的不同项目,不同屏幕的适配工作,发现我们以前自己写的代码,确实是不具备通用和可移植性,所以写下了下面的这些,希望以后写的代码具有更好的匹配性,能支持不同的屏幕,有更好的效果。
How:
1.为不同屏幕提供不同的图片
res/drawable
res/drawable-xhdpi res/drawable-xhdpi-1280x720 (特定的屏幕1280*720)
res/drawable-hdpi res/drawable-hdpi-960x540 (特定的屏幕960*540)
res/drawable-mdpi
res/drawable-ldpi
res/drawable-land (横屏图片)
res/drawable-land-ldpi (横屏图片)
2.为不同屏幕提供不同的布局文件
res/layout
res/layout-xhdpi res/layout-xhdpi-1280x720 (特定的屏幕1280*720)
res/layout-hdpi res/layout-hdpi-960x 540 (特定的屏幕960*540)
res/layout-mdpi
res/layout-ldpi
res/layout-land (横屏布局文件)
res/layout-land-ldpi (横屏布局文件)
3.为不同屏幕提供不同的value,特别是dimens.xml的运用
res/values
res/values-xhdpi /dimens.xml res/values-xhdpi-1280x720/dimens.xml (特定的屏幕1280*720)
res/values-hdpi/dimens.xml res/values-hdpi-960x540/dimens.xml (特定的屏幕960*540)
res/values-mdpi /dimens.xml
res/values-ldpi /dimens.xml
res/values-land/dimens.xml (横屏values)
res/values-land-ldpi /dimens.xml (横屏values)
使用样例:
(1)字体大小匹配
Dimens.xml (res\values-hdpi):
<dimen name="dialpad_fragment_cancel_text_size">45sp</dimen>
Dimens.xml (res\values-hdpi-854x480):
<dimen name="dialpad_fragment_cancel_text_size">25sp</dimen>
代码读取:
float size = getResources().getDimensionPixelSize(R.dimen.dialpad_fragment_cancel_text_size);
(2)间距匹配
Dialpad_fragment.xml (res\layout-hdpi-854x480):
android:layout_marginTop="@dimen/konka_text_callerLoc_margintop"
Dialpad_fragment.xml (res\layout-xhdpi-1280x720):
android:layout_marginTop="@dimen/konka_text_callerLoc_margintop"
Dimens.xml (res\values):
<dimen name="konka_text_callerLoc_margintop">45dip</dimen>
Dimens.xml (res\values-hdpi):
<dimen name="konka_text_callerLoc_margintop">33dip</dimen>
Best Practices:
1.在布局文件中合理使用 wrap_content, fill_parent, 单位考虑使用dp
2.布局尽量使用相对布局( RelativeLayout),不要使用绝对布局(AbsoluteLayout)
3.在代码中,不要使用 hard-coded pixel 值。
eg:
myView.getWidth()
参考资料:
1.http://developer.android.com/guide/practices/screens_support.html
- android开发笔记之APP在不同的项目中适配(支持多种屏幕)
- APP支持不同的设备 之 支持不同屏幕
- Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕尺寸
- Android官方开发文档Training系列课程中文版:多样屏幕之支持不同的屏幕密度
- Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕
- Android支持多屏幕(7)在不同的屏幕上测试你的程序
- android支持多种屏幕
- 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
- 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
- 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
- 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
- Android:支持不同的屏幕
- android 布局如何支持多种不同屏幕尺寸
- android 布局如何支持多种不同屏幕尺寸
- android 布局如何支持多种不同屏幕尺寸
- android 布局如何支持多种不同屏幕尺寸
- android 布局如何支持多种不同屏幕尺寸
- android 布局如何支持多种不同屏幕尺寸
- 在U盘上安装Linux系统解决方案
- 进程(1)
- Session案例之实现购物网址购物车
- N个硬币_其中一个假币_不知偏轻或偏重__称K次_找出假币
- Hadoop编程实战入门 实例
- android开发笔记之APP在不同的项目中适配(支持多种屏幕)
- tomcat 运行异常Cannot create PoolableConnectionFactory (到主机 的 TCP/IP 联接失败)(用户sa登录失败)
- 批处理追加环境变量
- android 网络下载图片,加载Bitmap 不oo控件
- 为什么做百度SEO优化比竞价好
- 使用异步 I/O 大大提高应用程序的性能(AIO)
- error: more than one device and emulator-----adb命令
- Linux学习-创建、删除文件夹和文件
- UML2 面向对象分析与设计---读书笔记---泛化关系和多态