今日頭條螢幕適配方案終極版:極低成本 Android 適配方案!

趙鈺瑩發表於2018-08-23

本文為今日頭條螢幕適配方案終極版,這是一個極低成本的 Android 適配方案!

主流機型參考:

Pixel 2 XL | 1440 x 2880 | 560dpi:

Pixel XL | 1440 x 2560 | 560dpi:

Nexus 5X | 1080 x 1920 | 420dpi:

Nexus 4 | 768 x 1280 | 320dpi:

Nexus S | 480 x 800 | 240dpi:

以上為主流機型裝置資訊,可以作為參考。

原理分析

對於老專案的使用,AndroidAutoSize 可以和 AndroidAutoLayout 一起使用,因為 AndroidAutoLayout 使用的是 px,所以 AndroidAutoSize 對它不會產生任何影響,如果老專案的某些頁面之前使用了 dp 進行佈局,並且 AndroidAutoSize 對這些頁面已經產生了不良影響,可以讓之前使用了 dp 的舊 Activity 實現 CancelAdapt 取消適配

Download

implementation 'me.jessyan:autosize:0.7.0'
Usage

Step 1 (真的不吹牛逼,只需要以下這一步,框架就可以對專案中的所有頁面進行適配)

請在 AndroidManifest 中填寫全域性設計圖尺寸 (單位 dp)

<manifest>
    <application>            
        <meta-data
            android:name="design_width_in_dp"
            android:value="360"/>
        <meta-data
            android:name="design_height_in_dp"
            android:value="640"/>           
     </application>           
</manifest>

Advanced (以下用法看不懂?答應我,認真看 Demo 好不好?)

當某個頁面的設計圖尺寸與在 AndroidManifest 中填寫的全域性設計圖尺寸不同時,可以實現 CustomAdapt 介面擴充套件適配引數

public class CustomAdaptActivity extends AppCompatActivity implements CustomAdapt {
    @Override
    public boolean isBaseOnWidth() {
        return false;
    }
    @Override
    public float getSizeInDp() {
        return 667;
    }
}

當某個頁面想放棄適配,請實現 CancelAdapt 介面

public class CancelAdaptActivity extends AppCompatActivity implements CancelAdapt {
}
ProGuard
 -keep class me.jessyan.autosize.** { *; }
 -keep interface me.jessyan.autosize.** { *; }

以上由Github使用者JessYanCoding貢獻在社群之上的內容,原專案地址:https://github.com/JessYanCoding/AndroidAutoSize/blob/master/README-zh.md

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2212649/,如需轉載,請註明出處,否則將追究法律責任。

相關文章