>>分享Android开发相关的技术 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 18967 个阅读者 刷新本主题
 * 贴子主题:  Android多屏幕适配 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-05-15 11:18:55     消息  查看  搜索  好友  邮件  复制  引用

   问题:

         测试时,发现应用在不同的显示器上显示效果不同(部分文本不能显示完全),自然想到屏幕适配的问题。

         按照思路整理如下:

         (一) 几个概念

         1, <i>Screen size </i>屏幕的尺寸,即对角线长度(单位inch-英寸)

         2, Screen density屏幕密度,即单位长度像素点数(pots/inches)

         3, Resolution 分辨率,即屏幕的总像素点数(width * height)

         4, Density-independent pixel (dp)独立像素密度。标准是160dip.即1dp对应1个pixel,计算公式如:px = dp * (dpi / 160),屏幕密度越大,1dp对应 的像素点越多。

          (二) 屏幕的分类(size & density)

         1, 以总像素数分,文本的size等都要改,如下图所示

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
             每一个分类都有其最小分辨率,如下,可根据分辨率划分种类:

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

          2, 以屏幕密度分,提供不同的图片如下图所示

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

         Note1:匹配以上面两种为参考。

         Note2:还有专为水平(landscape)和竖直(portrait)两种,使用的少,在此不赘述。

          (三) Android寻找最佳资源原理

         1, 排除与设备设置不符合的资源

         2, 根据限定词(qualifier)的优先级,按照顺序查找

         3, 在限定词下,是否存在资源路径

         4, 排除不包含在限定词中的资源路径

         5,  继续执行不同的限定词查找,直到找到相应的资源

         如下图所示:

        点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

         (四) 项目步骤:

         1, manufest中配置
  1.    < supports-screens  
  2.           android:anyDensity = "true"  
  3.           android:largeScreens = "true"  
  4.           android:normalScreens = "true"  
  5.           android:smallScreens = "true"  
  6.           android:xlargeScreens = "true"   />  

     2, 新建对应的资源文件夹

         A, Layout

         例如,我现在有三个显示器分辨率:

         分别为1280*720,1024*768,1200*690

         根据以上最低分辨率的要求,分为xlarge和large两类,新建两个文件夹,如下:

         如下图所示:

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

         B, Drawable

         如下图所示:

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

          在drawable中,以mdpi为标准(即160dpi)。比例保持为3:4:5:6,如下图所示:

         点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

                  

----------------------------
原文链接:https://blog.51cto.com/mikewang/865304

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 sunweiqin 在 2020-05-20 11:23:59 重新编辑]
网站系统异常


系统异常信息
Request URL: http://www.javathinker.net/WEB-INF/lybbs/jsp/topic.jsp?postID=3223

java.lang.NullPointerException

如果你不知道错误发生的原因,请把上面完整的信息提交给本站管理人员