美文网首页
Android适配问题总结

Android适配问题总结

作者: minzizi | 来源:发表于2017-10-09 14:50 被阅读0次

    Android 适配问题:点击这里  (很详细)

    总结:

    px:手机的分辨率,即像素的个数

    dp/dip:密度无关像素

    dpi: 像素密度,即每英寸像素的个数

    以320*480手机像素,160dpi的像素密度为基准,此时的1dp=1px,则此时的手机宽高为320dp*480dp(手机的宽高都以dp作为单位) 。

    标准的其他像素的手机,如240×160等,其1dp=0.75px,则其宽高也为320dp*480dp。此时当手机像素不同时,用dp可以作为适配的方法,即手机宽高一致时可以用dp适配。

    注:有一个320*480手机像素,但120dpi的像素密度,则此时手机的宽高为(320/0.75)dp*(480/0.75)dp,宽高不是原来的了,此时用dp不能作适配的方法。或者有一个相同像素密度但分辨率不同的手机,此时dp也不能作适配了。即手机的宽高不一致时不能用dp为单位。

    解决方法:以320×160像素为基准,将其长分成320份,每份为1px,宽也是这样,定义在dimens文件中,如<dimens name="x1">1.0px</dimens>(放在values-320*160),那么其他像素如480*320则定义<dimens name="x1">1.5px</dimens>(放在values-480*320),

    计算可以用一个工具:点击这里 

    命令如下:java -jar 文件名.jar 基准宽 基准高 额外支持尺寸1的宽,额外支持尺寸1的高_额外支持尺寸2的宽,额外支持尺寸2的高

    弊端:每一个像素都要有不同的文件,要有默认的values文件下,因为对于没有生成对应分辨率文件的手机,里面采用dp为单位,则还是有可能有问题

    图片适配的问题:采用nine-patch .9图自制图片达到好的拉伸效果;把最大分辨率xxhdpi的图片做好,则其他小分辨率Android会自动加载并且进行收缩,如果只有小分辨率的则大的无法拉伸

    不同屏幕大小给予不同的layout文件(主要是单面板和双面板):一般来说可以直接在layout_ sw650dp等文件下分别建立相应的同名.xml文件。

    存在问题:名字一样,后期维护不方便,可以用"布局别名",res/values/layout,res/values-sw600dp-land/layouts.xml 下建立.xml文件,在代码中可以引用main作为代替,检测到不同的屏幕时则加载不同的layout文件,layout文件只存在于res/layout中,两个屏幕就有两个.xml文件

    <item name="main" type="layout">@layout/one </item>

    注:主要用到fragment碎片,当fragment碎片两个屏幕会重复使用时,如一个新闻的App,则可以在其中判断是否有其他布局从而判断了处于哪个屏幕,进行不同的操作。

    相关文章

      网友评论

          本文标题:Android适配问题总结

          本文链接:https://www.haomeiwen.com/subject/octxyxtx.html