public final class AutoSize
extends java.lang.Object
Activity 上, 这个 Activity 下的所有 Fragment、Dialog、
自定义 View 都会达到适配的效果, 如果某个页面不想使用适配请让该 Activity 实现 CancelAdapt
任何方案都不可能完美, 在成本和收益中做出取舍, 选择出最适合自己的方案即可, 在没有更好的方案出来之前, 只有继续忍耐它的不完美, 或者自己作出改变 既然选择, 就不要抱怨, 感谢 今日头条技术团队 和 张鸿洋 等人对 Android 屏幕适配领域的的贡献
Created by JessYan on 2018/8/8 19:20 Contact me Follow me ================================================
| Modifier and Type | Method and Description |
|---|---|
static void |
autoConvertDensity(android.app.Activity activity,
float sizeInDp,
boolean isBaseOnWidth)
这里是今日头条适配方案的核心代码, 核心在于根据当前设备的实际情况做自动计算并转换
DisplayMetrics.density、
DisplayMetrics.scaledDensity、DisplayMetrics.densityDpi 这三个值, 额外增加 DisplayMetrics.xdpi
以支持单位 pt、in、mm |
static void |
autoConvertDensityBaseOnHeight(android.app.Activity activity,
float designHeightInDp)
以高度为基准进行适配
|
static void |
autoConvertDensityBaseOnWidth(android.app.Activity activity,
float designWidthInDp)
以宽度为基准进行适配
|
static void |
autoConvertDensityOfCustomAdapt(android.app.Activity activity,
CustomAdapt customAdapt)
使用
Activity 或 Fragment 的自定义参数进行适配 |
static void |
autoConvertDensityOfExternalAdaptInfo(android.app.Activity activity,
ExternalAdaptInfo externalAdaptInfo)
使用外部三方库的
Activity 或 Fragment 的自定义适配参数进行适配 |
static void |
autoConvertDensityOfGlobal(android.app.Activity activity)
使用 AndroidAutoSize 初始化时设置的默认适配参数进行适配 (AndroidManifest 的 Meta 属性)
|
static void |
cancelAdapt(android.app.Activity activity)
取消适配
|
static void |
initCompatMultiProcess(android.content.Context context)
当 App 中出现多进程,并且您需要适配所有的进程,就需要在 App 初始化时调用
initCompatMultiProcess(android.content.Context)
建议实现自定义 Application 并在 Application.onCreate() 中调用 initCompatMultiProcess(android.content.Context) |
public static void autoConvertDensityOfGlobal(android.app.Activity activity)
activity - Activitypublic static void autoConvertDensityOfCustomAdapt(android.app.Activity activity,
CustomAdapt customAdapt)
Activity 或 Fragment 的自定义参数进行适配activity - ActivitycustomAdapt - Activity 或 Fragment 需实现 CustomAdaptpublic static void autoConvertDensityOfExternalAdaptInfo(android.app.Activity activity,
ExternalAdaptInfo externalAdaptInfo)
Activity 或 Fragment 的自定义适配参数进行适配activity - ActivityexternalAdaptInfo - 三方库的 Activity 或 Fragment 提供的适配参数, 需要配合 ExternalAdaptManager.addExternalAdaptInfoOfActivity(Class, ExternalAdaptInfo)public static void autoConvertDensityBaseOnWidth(android.app.Activity activity,
float designWidthInDp)
activity - ActivitydesignWidthInDp - 设计图的总宽度public static void autoConvertDensityBaseOnHeight(android.app.Activity activity,
float designHeightInDp)
activity - ActivitydesignHeightInDp - 设计图的总高度public static void autoConvertDensity(android.app.Activity activity,
float sizeInDp,
boolean isBaseOnWidth)
DisplayMetrics.density、
DisplayMetrics.scaledDensity、DisplayMetrics.densityDpi 这三个值, 额外增加 DisplayMetrics.xdpi
以支持单位 pt、in、mmactivity - ActivitysizeInDp - 设计图上的设计尺寸, 单位 dp, 如果 设置为 true,
则应该填写设计图的总宽度, 如果 设置为 false,
则应该填写设计图的总高度isBaseOnWidth - 是否按照宽度进行等比例适配, true 为以宽度进行等比例适配, false 为以高度进行等比例适配public static void cancelAdapt(android.app.Activity activity)
activity - Activitypublic static void initCompatMultiProcess(android.content.Context context)
initCompatMultiProcess(android.content.Context)
建议实现自定义 Application 并在 Application.onCreate() 中调用 initCompatMultiProcess(android.content.Context)context - Context