头条AutoSize基本原理
Posted 楠之枫雪
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了头条AutoSize基本原理相关的知识,希望对你有一定的参考价值。
其实核心代码根简单,如下面显示,详情可以参考这个文章:屏幕适配:修改屏幕像素密度,随便设dp
private final static float WIDTH = 960;
public static void setDensity(Application application, AppCompatActivity activity) {
//获取当前app的屏幕显示信息
DisplayMetrics displayMetrics = application.getResources().getDisplayMetrics();
float appDensity = displayMetrics.density;
float appScaleDensity = displayMetrics.scaledDensity;
//计算等比缩放后的density和scaleDensity
//WIDTH相对于所有屏幕宽度都是相等的,它是用dp作为单位,所以 屏幕宽度/屏幕密度=WIDTH
//targetDensity = targetWidht/WIDTH
float targetDensity = displayMetrics.widthPixels / WIDTH;
//appScaleDensity/appDensity=targetScaleDensity/targetDensity;
float targetScaleDensity = targetDensity * (appScaleDensity / appDensity);
int targetDensityDpi = (int) (targetDensity * 160);
//替换activity的density,appdensity,densityDpi
DisplayMetrics aDisplayMertics = activity.getResources().getDisplayMetrics();
aDisplayMertics.density = targetDensity;
aDisplayMertics.scaledDensity = targetScaleDensity;
aDisplayMertics.densityDpi = targetDensityDpi;
}
以上是关于头条AutoSize基本原理的主要内容,如果未能解决你的问题,请参考以下文章