美文网首页android学习笔记
【Android】Android适配多分辨率

【Android】Android适配多分辨率

作者: heheworld | 来源:发表于2016-10-20 18:32 被阅读0次

    老生常谈的话题了。写下来帮助自己巩固理解记忆。

    基础知识

    density: The logical density of the display.  密度比例值,当前dpi/160 就对应这个值

    Dip (Device-independent pixel)  同dp,可作长度单位,不同设备有不同的显示效果,

    这个和设备硬件有关,在dpi(像素密度)为160dpi的设备上 1dip = 1px

    Dpi (dots per inch)  每英寸的密度值,该值对应于DisplayMetrics类中属性densityDpi的值

    适配方式

    在values中根据需要适配的分辨率机型,在res目录下新建不同的文件夹(命名为values-xxhdpi-1920x1080,values-xhdpi-1280x720...),

    写对应的dimens.xml文件

    在res/values/目录下的dimens.xml文件中,我们默认1px=1dp的。可以写成<dimen name="dp_1">1dp</dimen>

    那么在values-xxhdpi-1920x1080文件夹下,

    因为hdpi 屏宽默认为480px.  densityDpi为240.xxhdpi-1920x1080下 屏宽默认为1080px. 

    densityDpi为480.

    在 hdpi下 1dp = 1px;

    那么在xxhdpi-1920x1080下, (1080/480)/(480/240) = 9/8 dp 即对应 hdpi 中的 1dp ,dimens.xml文件中写成<dimen name="dp_1">1.12dp</dimen>

    同理 在xhdpi-1280x720下,(720/320)/(480/240) = 9/8 dp 即对应 hdpi 中的 1dp,

    dimens.xml文件中写成<dimen name="dp_1">1.12dp</dimen>(跟xxhdpi-1920x1080一样的)

    如果在 hdpi-1920x1080下呢,套用公式即可 (1080/240)/(480/240) = 9/4 dp,

    dimens.xml文件中写成<dimen name="dp_1">2.25dp</dimen>

    其他不同分辨率以及density同样可以推出,不作赘述。

    布局文件中使用格式:

    ```

    <View

    android:layout_width="match_parent"

    android:layout_height="@dimen/dp_1"/>

    ```

    相关文章

      网友评论

        本文标题:【Android】Android适配多分辨率

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