Android頁面佈局適配
引用了前人的學習後總結的簡略版界面適配。
原鏈接:https://www.jianshu.com/p/12ce5c0a6163
使用第三方開源框架適配
Android第三方開源框架——AndroidAutoSize
屏幕適配框架AndroidAutoSize是根據今日頭條屏幕適配方案優化的。 (今日頭條的低成本屏幕適配終極方案)
在GitHub上也可以可以找到該開源項目。
1. 配置依賴(有更新的建議直接先看GitHub上面的源碼)
<!--私有依賴-->
implementation 'me.jessyan:autosize:1.1.2'
<!--共有依賴-->
api 'me.jessyan:autosize:1.1.2'
2. 使用功能及其介紹
-
直接在Main.xml中添加配置即可
<!--適配海博TV--> <manifest> <application> <meta-data android:name="design_width_in_dp" android:value="540"/> <meta-data android:name="design_height_in_dp" android:value="960"/> </application> </manifest>
-
直接在Main.xml中添加這個配置是指的是整個項目的界面構造,如果有哪個界面或者活動是單獨的size的話,讓這個活動(或者是fragment)實現CustomAdapt接口,重寫這個接口中的第一個方法就可以。
public class CustomAdaptActivity extends AppCompatActivity implements CustomAdapt { /** * 是否按照寬度進行等比例適配 (爲了保證在高寬比不同的屏幕上也能正常適配, 所以只能在寬度和高度之中選擇一個作爲基準進行適配) * * @return {@code true} 爲按照寬度進行適配, {@code false} 爲按照高度進行適配 */ @Override public boolean isBaseOnWidth() { return false; } /** * 設計圖尺寸爲 1080px * 1920px, 高換算成 dp 爲 960 (1920px / 2 = 960dp) * <p> * 返回的設計尺寸, 單位 dp * {@link #getSizeInDp} 須配合 {@link #isBaseOnWidth()} 使用, 規則如下: * 如果 {@link #isBaseOnWidth()} 返回 {@code true}, {@link #getSizeInDp} 則應該返回設計圖的總寬度 * 如果 {@link #isBaseOnWidth()} 返回 {@code false}, {@link #getSizeInDp} 則應該返回設計圖的總高度 * 如果您不需要自定義設計圖上的設計尺寸, 想繼續使用在 AndroidManifest 中填寫的設計圖尺寸, {@link #getSizeInDp} 則返回 {@code 0} * * @return 單位 dp */ @Override public float getSizeInDp() { return 667; } }
如果有個界面不想要適配的話,也只需要實現CancelAdapt接口就行。
public class CancelAdaptActivity extends AppCompatActivity implements CancelAdapt { }
-
關於自定義view和一些頑固的界面適配的話,直接訪問該網站有終極解決方案。