首页 > 代码库 > Android 完美适配多分辨率总结

Android 完美适配多分辨率总结

    android 适配,之前工作都是以1280*720界面进行适配工作,但是现在手机分辨率进入2K时代,所以现在美工都以1920*1080来做界面设计。以以前的工作经验总结了一下适的方案。

1.工具:MarkMan这个是必备的测量工具 下载地址(下载安装后别更新,不然保存不了测量过的数据)

2.懂得分辨率原理(0.75、1、1.5、2.0、3.0)

3.知道以什么分辨率开发界面。

要注意地是平板开发,values-sw600dp, values-sw720dp-land。这二个文件下主要用于平板存放的。

sw720dp的意思是最少宽度为720dp,如一个1280*800的设备,密度为1就是10寸平板,它的宽度为1280dp,所以它优先去 values-sw720dp文件下找资源,然后再去sw600dp,还没有找到就去drawable-mdpi找,然后再向上找(密度高的文件下找),最后去drawable-ldpi找!

例子步骤:

1.以下是1920*1080的截图,测量好需要的像素尺寸:

技术分享

2.然后在values文件中创建dimens.xml文件

<resources>

    <!-- 本dimens用于适配密度3.0设备 (480ppi) -->
    <!-- pxTodp -->
    <dimen name="px3dp">1.0dp</dimen>
    <dimen name="px15dp">5.0dp</dimen>
    <dimen name="px18dp">6.0dp</dimen>
    <dimen name="px24dp">8.0dp</dimen>
    <dimen name="px30dp">10.0dp</dimen>
    <dimen name="px36dp">12.0dp</dimen>
    <dimen name="px42dp">14.0dp</dimen>
    <dimen name="px45dp">15.0dp</dimen>
    <dimen name="px48dp">16.0dp</dimen>
    <dimen name="px51dp">17.0dp</dimen>
    <dimen name="px54dp">18.0dp</dimen>
    <dimen name="px57dp">19.0dp</dimen>
    <dimen name="px60dp">20.0dp</dimen>
    <dimen name="px66dp">22.0dp</dimen>
    <dimen name="px72dp">24.0dp</dimen>
    <dimen name="px78dp">26.0dp</dimen>
    <dimen name="px84dp">28.0dp</dimen>
    <dimen name="px90dp">30.0dp</dimen>
    <dimen name="px105dp">35.0dp</dimen>
    <dimen name="px120dp">40.0dp</dimen>
    <dimen name="px225dp">75.0dp</dimen>
    <!-- pxTosp -->
    <dimen name="px18sp">6.0sp</dimen>
    <dimen name="px21sp">7.0sp</dimen>
    <dimen name="px24sp">8.0sp</dimen>
    <dimen name="px27sp">9.0sp</dimen>
    <dimen name="px30sp">10.sp</dimen>
    <dimen name="px33sp">11.0sp</dimen>
    <dimen name="px36sp">12.0sp</dimen>
    <dimen name="px39sp">13.0sp</dimen>
    <dimen name="px42sp">14.0sp</dimen>
    <dimen name="px45sp">15.0sp</dimen>
    <dimen name="px48sp">16.0sp</dimen>
    <dimen name="px51sp">17.0sp</dimen>
    <dimen name="px54sp">18.0sp</dimen>
    <dimen name="px60sp">20.0sp</dimen>
    <dimen name="px66sp">22.0sp</dimen>
    <!-- dp 无须在其他values里再定义 -->
    <dimen name="dp1">1.0dp</dimen>
    <dimen name="dp5">5.0dp</dimen>
    <dimen name="dp6">6.0dp</dimen>
    <dimen name="dp8">8.0dp</dimen>
    <dimen name="dp10">10.0dp</dimen>
    <dimen name="dp12">12.0dp</dimen>
    <dimen name="dp14">14.0dp</dimen>
    <dimen name="dp15">15.0dp</dimen>
    <dimen name="dp16">16.0dp</dimen>
    <dimen name="dp17">17.0dp</dimen>
    <dimen name="dp18">18.0dp</dimen>
    <dimen name="dp19">19.0dp</dimen>
    <dimen name="dp20">20.0dp</dimen>
    <dimen name="dp22">22.0dp</dimen>
    <dimen name="dp24">24.0dp</dimen>
    <dimen name="dp26">26.0dp</dimen>
    <dimen name="dp28">28.0dp</dimen>
    <dimen name="dp30">30.0dp</dimen>
    <dimen name="dp35">35.0dp</dimen>
    <dimen name="dp40">40.0dp</dimen>
    <!-- sp 无须在其他values里再定义 -->
    <dimen name="sp6">6.0sp</dimen>
    <dimen name="sp7">7.0sp</dimen>
    <dimen name="sp8">8.0sp</dimen>
    <dimen name="sp9">9.0sp</dimen>
    <dimen name="sp10">10.sp</dimen>
    <dimen name="sp11">11.0sp</dimen>
    <dimen name="sp12">12.0sp</dimen>
    <dimen name="sp13">13.0sp</dimen>
    <dimen name="sp14">14.0sp</dimen>
    <dimen name="sp15">15.0sp</dimen>
    <dimen name="sp16">16.0sp</dimen>
    <dimen name="sp17">17.0sp</dimen>
    <dimen name="sp18">18.0sp</dimen>
    <dimen name="sp20">20.0sp</dimen>
    <dimen name="sp22">22.0sp</dimen>

</resources>

3.在layout中统一使用即可!

    如:

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <FrameLayout
        android:id="@+id/frame"
        android:layout_width="@dimen/px120dp"
        android:layout_height="@dimen/dp40" >
    </FrameLayout>

</LinearLayout>




Android 完美适配多分辨率总结