修改系统density, densityDpi 适配
Density 工具类
修改density,scaleDensity,densityDpi 值,直接更改系统内部对于目标尺寸而言的像素密度。
public class Density {private static final float WIDTH = 320;// 参考设备的宽,单位是 dpprivate static float appDensity;// 表示屏幕密度private static float appScaleDensity; // 字体缩放比例,默认 appDensitypublic static void setDensity(Application application, Activity activity){DisplayMetrics displayMetrics = application.getResources().getDisplayMetrics();if (appDensity == 0){appDensity = displayMetrics.density;appScaleDensity = displayMetrics.scaledDensity;// 添加字体变化监听回调application.registerComponentCallbacks(new ComponentCallbacks() {@Overridepublic void onConfigurationChanged(@NonNull Configuration newConfig) {// 字体发生变化,重新对 scaleDensity 进行赋值if (newConfig!=null && newConfig.fontScale>0){appScaleDensity = application.getResources().getDisplayMetrics().scaledDensity;}}@Overridepublic void onLowMemory() {}});}// 计算目标 density,scaleDensity,densityDpifloat targetDensity = displayMetrics.widthPixels / WIDTH;float targetScaleDensity = targetDensity*(appScaleDensity / appDensity);int targetDensityDpi = (int) (targetDensity * 160);// 替换 Activity 的 density,scaleDensity, densityDpiDisplayMetrics metrics = activity.getResources().getDisplayMetrics();metrics.density = targetDensity;metrics.scaledDensity = targetScaleDensity;metrics.densityDpi = targetDensityDpi;}
}
BaseActivity 设置
public class BaseActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);Density.setDensity(getApplication(),this);}
}
修改系统density, densityDpi 适配相关推荐
- 修改系统density适配
文章目录 一.简述 二.追根溯源 三.实现 3.1 定义Density用于对系统类值的修改 3.2 在MainActivity中调用 3.3 处理应用程序关于字体大小的监听 3.4 如果多界面统一处理 ...
- 屏幕适配--修改系统density进行屏幕适配
上次发了自定义像素适配后,有小伙伴问我修改density到底是怎么做的.遇到这个问题,我是懒得写一篇博客来说明的,但是当我准备搜一篇发链接给他时,看到好多博客写的并不完整或者看不明白,所以我就自己写吧 ...
- android修改系统density,Android应用开发Android 修改系统默认density
本文将带你了解Android应用开发Android 修改系统默认density,希望本文对大家学Android有所帮助. 如你所知在Anroid N 中,系统添加了多个级别的密度值供用户选择. 系统的 ...
- Android屏幕适配-修改全局density
转自:https://www.jianshu.com/p/e02cd88ae062,记录一下,以便查阅 屏幕适配好几种,目前主流且成本最低的还是修改系统density的方案. 概念 像素:屏幕的最小单 ...
- Android 屏幕适配(修改系统字体大小、显示大小、修改分辨率相关适配)
Android实际开发中会遇到各种各样的机型,所以就需要对多种机型进行适配.常见的适配在这类就不详细介绍了,大家可以参考这里的系列文章Android通用屏幕适配讲解的已经很详细了.下面说的是:当修改系 ...
- 安卓小米系统开发一些适配问题
开发最佳实践与兼容性建议(适配常见问题) MIUI是基于Android深度定制的操作系统,和Android保持100%兼容,我们准备了一些在Android开发过程中哦给你可能遇到的问题,也许对您有所帮 ...
- iOS 的 APP 在系统中如何适配不同的屏幕的尺寸
iOS 的 APP 在系统中如何适配不同的屏幕的尺寸 标签: 2007年,初代iPhone发布,屏幕的宽高是 320 x 480 像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone ...
- Android px density densityDpi dp 之间的关系和区别
px 表示屏幕的物理像素,例如 1080×1920 densityDpi 简称dpi,我们常说的像素密度,表示1英寸上对应有多少个像素,例如 160dpi.320dpi.440dpi.480dpi. ...
- 修改系统tabbar的高度
项目中用到了不规整的tabbar, 但是如果使用自定义又会有tabbar动画方面的问题 找到了一个折中的办法, 修改系统tabbar的高度 - (void)viewDidLoad { [sup ...
最新文章
- 字节跳动java笔试题目_牛客网--字节跳动面试题--特征提取
- Tensorflow—非线形回归
- iOS中 UITableViewCell cell划线那些事 韩俊强的博客
- Yii2.0 数据库更新update
- Java 洛谷 P1089 津津的储蓄计划讲解
- python 回调函数(Callback)
- OpenGL ES之GLKit的使用功能和API说明
- 【转载】ACM中矩阵乘法的应用
- android volume挂载流程,Android SDCard UnMounted 流程分析(一)
- 如何防止表单的重复提交
- 都说 Go 可以开启成千上万的 Goroutine,那调度器是怎么处理核上任务分配的?
- #includebits/stdc++.h包含C++的全部头文件
- 华为qy2音乐如何转换为mp3_华为手机还有这种骚操作?开启这个功能,让你体验至尊级待遇...
- TEM测试常见问题及解答(五)
- flutter 控制iOS设备屏幕可旋转支持方向
- Lyx的安装流程(windows10系统)及配置中文环境
- Mountain Lion 系统配置 Apache+Mysql+PHP 详细教程
- 计算机专业考研有必要二战吗,2019考研:二战考研有必要吗?
- 硬盘分区失败数据怎么恢复
- Polygon zkEVM zkROM代码解析(2)