首先是尺寸的适配,android平板和手机相比,由于pad的大屏特性,屏幕的尺寸和分辨率的差别就很明显,例如以下平板信息:

小米平板:4.4.4 densityDpi:320 size:1536x2048

华为平板:5.1.1 densityDpi:240 size:1200x1920

华为荣耀某平板:6.1 densityDpi:320 size:1200x1920

三星平板:6.0.1 densityDpi:320 size:1600x2560

同样的一套mdpi下的layout或者values放在上面华为荣耀平板和三星平板上显示差别就很大。下面是开发中关于设计的一些心得:

1. 开发中保持不增加布局层级的情况下采用百分比weight属性;针对不同尺寸的设备百分比缩放是体验最完美的,但由于实际开发中复杂界面如果采用百分比,无疑增加了层级复杂度,反而降低了性能,降低了可维护性和扩展性。

2. layout中使用的dp/sp值采用@dimen引用方式写进dimens.xml里面;为了方便采用多个values文件夹例如values-sw600dp,values-1280x720等针对特定屏幕适配。自然也可以采用layout-1280x720这样的来区分不同布局,但如果只是尺寸上的适配,无疑用dimens维护几套尺寸值是最容易的,还可以写个读写文件工具,修改一个values里的dimens文件后更新到所有的values文件;

3. 以上面的华为荣耀平板为例,采用sw(smallwidth)的方式进行适配,比较简单的计算方式,以mdpi(160)为标准,此平板的screenWidthDips = 1200/(320/160) = 600dp,所以values-sw600dp可以适配此平板(有的平板系统宽高是包含屏幕的虚拟按键的高度);

4. 为了苛求在不同尺寸平板上的体验,采用values-1200x1920,values-1600x2560这种方式,即为每个屏幕增加尺寸适配,工作量和效率来说不会影响太大,毕竟可以通过软件工具生成多套;

除了界面方面,平板开发上的模块化采用Fragment更多,以及Fragment嵌套Fragment:

5. Fragment中调用startActivityForResult,如果要在Fragment的onActivityResult里回调处理,那么不要采用getActivity().startActivityForResult方法,且宿主Activity如果重写了onActivityResult方法的,必须调用super.onActivityResult,否则Fragment的onActivityResult方法不会回调,这点可以从Activity的源码中看出来;

6. 嵌套在Fragment里的子Fragment的onActivityResult如果需要回调则要自己处理;

7. Fragment嵌套Fragment时,在Fragment里采用getChildFragmentManager()管理子Fragment,用法跟getSupportFragmentManager()一样;子Fragment之间的通信,可以采用事件总线方案进行解耦,例如Otto/EventBus,但可读性会下降,所以详细的注释还是必要的;

统一管理android平板,Android平板应用适配相关推荐

  1. android电话系统,Android电话系统之-rild.doc

    Android电话系统之-rild.doc Android电话系统之-rild Rild是Init进程启动的一个本地服务,这个本地服务并没有使用Binder之类的通讯手段,而是采用了socket通讯这 ...

  2. 【Android 屏幕适配】屏幕适配基础概念 ④ ( 屏幕适配限定符 | 手机/平板电脑设备屏幕适配 )

    文章目录 一.屏幕适配限定符 二.手机/平板电脑设备屏幕适配 平板电脑市场占有率 密度无关像素计算 手机设备限定符 平板设备限定符 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 声 ...

  3. windows和android平板,AndroidWindows平板一样适用_苹果平板电脑_平板电脑评测-中关村在线...

    ■Android&Windows平板一样适用 尽管小i Air蓝牙键盘是针对iPad Air所设计,但是这并不是说其它的平板就不能使用它了.Android和Windows平板依旧可以用它来进行 ...

  4. 如何提升Android手机和平板电脑的速度!

    随着时间的推移,你的女朋友Android手机或平板电脑在使用过程中,由于不断的增添新应用,以及拍摄更多的美照,它会变的越来越慢,这给你貌美如花的大宝贝,一个更换手机充足的理由,那么做为"穷屌 ...

  5. android与苹果平板生态,Android和Apple平板电脑的性价比比较

    Android和Apple平板电脑的性价比比较 当今市场上的平板电脑类型相对丰富,并且有许多品牌,大约30个左右,它们之间的竞争异常激烈. 市场上无休止的产品的出现使消费者做出了未定的选择. 我不知道 ...

  6. Android Studio配置统一管理依赖版本号引用

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本Demo采用的是其中一个方案,其他方案请阅读参考资料<Android Studio中统一管理版本号引用配置> 使用步骤 ...

  7. Android Studio中统一管理版本号引用配置

    转载注明gao_chun的Blog:http://blog.csdn.net/gao_chun/article/details/58105089 Gradle统一管理版本号引用配置 为了提高项目开发效 ...

  8. android自定义dialog开源库,android-dialog: 此框架提供五种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口。...

    android-dialog 此框架提供七种对话框的显示,并支持对话框的扩展,目的是为了提供对话框的统一管理,并提供对话框显示的公共接口. LoadingDialog:正在加载对话框 MessageD ...

  9. android studio管理依赖,Android Studio 中的 Gradle 依赖统一管理

    在我们的实际项目开发中,通常在一个 Project 项目中会存在多个 Module 的情况,在这些 Module 中会存在一些相同的版本依赖配置,针对进行版本升级的时候需要逐个修改,显得特别麻烦,所以 ...

最新文章

  1. php扩展的框架,新一代轻量级PHP扩展框架 Asf
  2. leetcode算法题--矩阵中的路径
  3. Spark 源码分析 -- RDD
  4. UA OPTI570 量子力学21 Atom Trapping
  5. 一款高颜值的 SpringBoot+JPA 博客项目
  6. php preg match x,PHP的preg_match噩梦
  7. python全栈学习--day12(函数高级应用-带参数的装饰器,多个装饰器装饰一个函数)...
  8. 编译libxml2-2.6.26 __open_missing_mode 错误
  9. Windows平台手动卸载Oracle Server【完整+干净】
  10. ACM-ICPC知识要点收集
  11. 100句自我激励的名言佳句
  12. HackerRank [Algo] Matrix Rotation
  13. 异常信息:Unable to update index for aliyun|http://maven.aliyun.com/nexus/content/groups/public/ 解决方法
  14. Linux下常用软件大比拼
  15. 计算机win7不断重启,win7系统无故自动重启的解决办法
  16. Windows 10 已禁用输入法
  17. 某bobo在线视频APP下载暴力流逆向
  18. Mac Os OBS 直播 使用手机做摄像头并美颜
  19. ae教程(二)文字类
  20. 服务器上的环境迁移到另一台服务器上(采用克隆方式)

热门文章

  1. 修改mysql表空间为独立模式
  2. 关于SEO优化的总结
  3. CC2530-ZigBee下载程序
  4. vue电商开发记录1—实现电商图片放大镜,移入放大效果
  5. 使用Axios进行无感刷新Token
  6. 实验一 DES加密算法编程实现
  7. 数据预处理-PDB文件处理代码
  8. 进阶92 表达式求值
  9. mmcls多标签分类实战(二):resnet多标签分类
  10. 学长带路学吉他,这几招足够了