import android.app.Activity;
import android.app.Application;
import android.content.ComponentCallbacks;
import android.content.res.Configuration;
import android.util.DisplayMetrics;
public class CustomDensity {
private static float sNoncompatDensity;
private static float sNoncompatScaledDensity;
public static void setCustomDensity(Activity activity, Application application) {
DisplayMetrics displayMetrics = application.getResources().getDisplayMetrics();
if (sNoncompatDensity == 0) {
sNoncompatDensity = displayMetrics.density;
sNoncompatScaledDensity = displayMetrics.scaledDensity;
application.registerComponentCallbacks(new ComponentCallbacks() {
@Override
public void onConfigurationChanged(Configuration newConfig) {
if (newConfig != null && newConfig.fontScale > 0) {
sNoncompatScaledDensity=application.getResources().getDisplayMetrics().scaledDensity;
}
}
@Override
public void onLowMemory() {
}
});
}
float targetDensity=displayMetrics.widthPixels/360;//设计图360dp
float targetScaledDensity=targetDensity*(sNoncompatScaledDensity/sNoncompatDensity);
int targetDensityDpi= (int) (160*targetDensity);
displayMetrics.density=targetDensity;
displayMetrics.scaledDensity=targetScaledDensity;
displayMetrics.densityDpi=targetDensityDpi;
DisplayMetrics activityDisplayMetrics=activity.getResources().getDisplayMetrics();
activityDisplayMetrics.density=targetDensity;
activityDisplayMetrics.scaledDensity=targetScaledDensity;
activityDisplayMetrics.densityDpi=targetDensityDpi;
}
}
今日头条屏幕适配方案
最新推荐文章于 2024-06-22 16:17:38 发布