Android UI总结 Android 和H5 字体大小适配

Android 设置系统默认字体大小的修改 然而,由于安全限制,你的应用程序需要具备相应的权限,并且需要谨慎操作以遵守用户隐私和安全的最佳实践。然而,有时候我们可能需要在应用程序中修改设备的系统默认字体大小,以确保应用程序在不同设备上显示一致。需要注意的是,由于 Android 系统的安全限制,普通应用程序无法直接修改系统设置。在 Android 中,系统默认字体大小是由设备的设置决定的,我们需要使用反射来修改这个设置。请注意,上述代码需要在应用程序的合适位置进行调用,比如在应用程序的启动过程中或者在设置界面中。首先,我们需要获取系统设置的实例。 阅读详情

1.Android字体

1. 像素:像素(pixel)为图像的基本单位,是一个抽象的采样。一般作为一个最小的显示单位内置RGB。

2.屏幕尺寸:指屏幕的物理尺寸,一般用屏幕的对角线长度表示

3.宽高比例:屏幕物理尺寸的宽高比,传统手机一般是16:9,4:3,但是全面屏的出现打破了这个局面:三星S8,三星 note8,小米mix,LGG6 是 2:1,等都是2:1的手机

4.分辨率:值得是屏幕纵行多少像素点,横行多少像素点,如1920:1080,1440:2560等

5.屏幕密度:分辨率/屏幕尺寸可以反映出手机密度。

6.dpi:Dot per inch, 每英寸像素点,可以反映屏幕清晰度。一般的,计算的方法为对角线像素值/对角线长度(屏幕尺寸)。

7.dip: Density-independent pixel,与密度无关像素,亦称为设备独立像素(Device independent pixel),是一个虚拟的像素的单元,其等价于160dpi屏幕的一个实际物理像素。 这个160dpi值得最开始的手机大小算的值

8.sp:根据屏幕密度和字体的缩放比例算出的值。

对照表参考:http://blog.youkuaiyun.com/zhaoyw2008/article/details/46008513


2.H5字体

1.任何浏览器的默认字体高度都是16px,


3.适配方法

    适配方案一:

    https://stuff.mit.edu/afs/sipb/project/android/docs/guide/webapps/targeting.html

    通过对H5页面添加这个设置(只有Android系统自带的webview带这个功能)

 <meta name="viewport" content="target-densitydpi=device-dpi, width=device-width"/>

这样设置后h5就可以获取到原生这边对应的字体大小了

    适配方式二:

    通过传递本地的字体大小缩放值,手机的物理分辨率,DP等传给前端,在通过公式:

     deviceParams[2] 是手机的屏幕宽度, deviceParams[1] 是dp

    

   通过公式获取到的数值大小适配和原生界面的字体大小一致

 

3.获取系统字体缩放值

由于系统并未提供这个api接口。于是采用了反射机制获取了系统这个类的值。

 

public static float getSystemTextScale() {
    float textScale = 1;
    // 获取系统字体大小
    try {
        Configuration mCurConfig = new Configuration();
        // 获取ActivityManagerNative类的对象activityManagerNative
        Class<?> activityManagerNative = Class.forName("android.app.ActivityManagerNative");
             /*
              * 获得可调用getConfiguration方法的对象oam(调用  getDefault方法得到的东西)
              * getMethod:获取AMN类中的getDefault方法
              * invoke:通过activityManagerNative对象调用getDefault方法
              */
        Object oam = activityManagerNative.getMethod("getDefault").invoke(activityManagerNative);
        // 获取getConfiguration方法并通过oam对象调用,得到config对象
        Object config = oam.getClass().getMethod("getConfiguration").invoke(oam);
        mCurConfig.updateFrom((Configuration) config);
        textScale  = mCurConfig.fontScale;
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (InvocationTargetException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (NoSuchMethodException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return textScale;
}

 

 

 

 

 

 

噪声整形与过采样实战:从N-bit ADC到DSM的SQNR优化指南 本文深入探讨了噪声整形与过采样技术在DSM(Delta-Sigma调制器)中的应用,重点分析了量化器位数(N)、滤波器阶数(L)和过采样率(OSR)对SQNR优化的影响。通过实战案例和参数协同优化策略,帮助工程师在音频处理和通信系统设计中实现更优的信号质量。 阅读详情

相关推荐

antv x6 沿边图标循环动画实现

2.使用transition给边设置动画,利用complte方法实现循环动画。实现效果,如下图,边上存在两个图标,要求图标延边一直循环动画。1.注册一个自定义边,边上定义两个图标,并设置其初始位置。

lingliu0824的博客 3366

Android 字体大小(fontScale)不随系统设置变化

App字体大小不变 部分用户将系统字体大小设置的非常大,导致APP的文字大小显示异常。 目标效果是,APP内字体大小不随系统设置的字体大小变化。

宋冠巡的博客 1万+

MIKE11实战:平原河网水动力建模从入门到精通(附GIS数据处理技巧)

本文系统介绍了MIKE11软件在平原河网水动力建模中的完整实战流程。从GIS数据预处理、河网构建、参数率定到结果分析,详细阐述了构建可靠数字孪生模型的关键步骤与技巧,旨在帮助水利工程师高效解决平原地区复杂水流模拟的挑战,为防洪决策提供科学依据。

weixin_28419039的博客 688

Android获取系统字体的大小,修改android系统字体大小

在alps/frameworks/base/core/java/android/content/res/Configuration.java文件中如下public void setToDefaults() 这个方法中进行修改,如:把默认字体要改为超大,把fontScale值改为1.15f,然后重新build framework.jar这个模块即可;public void setToDefaults...

weixin_42521186的博客 1915

Dataset - DeepFashion 服装数据集

Dataset - DeepFashion 服装数据集 [Dataset - DeepFashion] [Project - DeepFashion] 1. 服装类别和属性预测集 [Category - Attribute 下载] [百度网盘] 289,222 张服装图片 clothes images; 50 个服装类别 clothing categories 1,000 ...

长风破浪会有时,直挂云帆济沧海 2万+

当迁移学习遇见室内定位:基于UJIIndoorLoc的跨场景适配实践

本文探讨了迁移学习在跨建筑室内定位中的应用,重点解析了UJIIndoorLoc数据集的特性及其在解决设备差异和环境变化中的关键作用。通过特征工程、迁移学习策略和小样本微调技术,显著提升了定位模型的跨场景适配能力,为实际部署提供了有效解决方案。

weixin_29038155的博客 394

Android App修改字体大小,且不随系统字体大小更改

在做混合开发时发现,无论是APP内的字体大小,还是前端的字体大小,都会随着系统字体大小发生变化。当遇到老人字体(特大号字体)时,有些页面的布局就乱掉了。而玩过游戏的都知道,所有游戏APP的字体都不会随着系统的字体变化而变化。 有两种思路: 利用 dip(device independent pixels,设备独立像素)作为字体单位。这样的话,一个是在所有手机上字体看起来都差不多大,而且也不随系统...

司马懿的西山居 1万+

RK3588嵌入式开发:从零构建Rockit多媒体处理引擎的实战指南

本文详细介绍了如何在RK3588嵌入式平台上从零构建Rockit多媒体处理引擎的实战指南。涵盖开发环境搭建、工具链配置、源码编译流程、硬件加速优化及典型问题解决方案,帮助开发者高效利用RK3588的NPU和VPU加速特性,实现高性能多媒体处理应用。

mango的博客 186

Android获取系统字体的大小,Android中设置字体不随系统字体大小而变化

有的时候,我们设置好的布局,在某些手机上,就会出现布局错乱,因为这个问题会流失很多用户,体验超级不好,问题图如下image.png.我们可以看到本来是一行可以显示的布局,竟然错乱成这个样子,蛋疼!解决办法:一、我们在Application的onCreate方法中将APP中的res配置设置为默认:Resources res = super.getResources();Configuration c...

weixin_35965062的博客 2082

【nvidia-B200】实际生产报错NVRM: nvAssertFailedNoLog: Assertion failed: pIOVAS != NULL @ io_vaspace.c:601

升级 NVIDIA 驱动到 R545/R550 数据中心版本(解决 IOVA bug,这是性能差的根本原因);重启服务器(清理驱动残留资源,消除日志中的 NVRM 错误);验证 NVLink/PCIe 链路(确保 8 卡互联使用高速链路,而非单卡 PCIe 共享带宽)。完成这 3 步后,ncccl-test的all_reduce带宽应能提升至100GB/s 以上(取决于服务器的 NVLink/NVSwitch 配置),恢复正常性能。

jundao1997的专栏 648

Python 爬虫实战:在丁香医生抓取健康科普文章阅读量,普及健康知识

requests:用于发送 HTTP 请求,获取网页内容。或 lxml:用于解析 HTML 页面,提取目标数据。pandas:用于数据清洗和分析。matplotlib和seaborn:用于数据可视化。通过本项目,我们实现了以下目标:使用 Python 爬虫抓取丁香医生的健康科普文章阅读量。对数据进行清洗和分析,找出热门文章。通过可视化展示数据,并普及健康知识。

u014481728的博客 1566

android ui适配大字体,Android UI总结 Android 和H5 字体大小适配

1.Android字体1. 像素:像素(pixel)为图像的基本单位,是一个抽象的采样。一般作为一个最小的显示单位内置RGB。2.屏幕尺寸:指屏幕的物理尺寸,一般用屏幕的对角线长度表示3.宽高比例:屏幕物理尺寸的宽高比,传统手机一般是16:9,4:3,但是全面屏的出现打破了这个局面:三星S8,三星note8,小米mix,LGG6 是 2:1,等都是2:1的手机4.分辨率:值得是屏幕纵行多少像素点...

weixin_42632434的博客 503

在 SAP 中,Primary Cost Element(初级成本要素)与Secondary Cost Element(次级成本要素)的核心区别、作用及业务含义可归纳如下

摘要:SAP中初级成本要素与次级成本要素的核心区别在于:初级要素必须关联FI模块的损益科目,直接影响财务报表,用于记录外部成本(如电费、薪酬);次级要素仅存在于CO模块,用于内部成本分配(如分摊、作业分配),不影响外部报表。初级要素是"外部成本入口",次级要素是"内部成本搬运工",二者共同实现成本的多维度追踪与管理。

金牌架构师 759

一种利用百分比布局适配所有Android手机屏幕分辨率的方法

场景1、团队里面,UI设计师往往只提供以一个标准分辨率来设计的UI设计稿,用于Android、iOS、H5三端。2、Android手机分辨率众多,如何让UI在不同分辨率的手机上面能有相同的效果?解决方案在网上看到有一种解决方案是按照屏幕分辨率根据基准分辨率来等比缩放,经过实际项目中使用后,效果不错,因此来跟大家分享一下这个方案,以及使用过程中需要注意的问题。1、这是UI设计师以iPhone6的分辨...

尼古拉斯的AI笔记 3750

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

vue3 uniapp h5 微信小程序 安卓和iOS开发适配踩坑记录

uniapp iOS Android h5 踩坑记录

qq_45832807的博客 5017

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

android 设置字体大小不随系统大小变化,App字体大小不随系统改变而改变

在 "设置" , "显示" , "字体大小" 里面我们可以设置系统字体大小App界面字体,如果被修改之后,可能就达不到理想状态的效果,界面布局就发生了变化。未修改过的效果(测试机型:Nexus 5):正常              小              超大修改之后的效果(测试机型:Nexus 5):正常              小              超大我们从这两组对比...

weixin_39720003的博客 4686

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

教你如何用 lib-flexible 实现移动端H5页面适配

前话好久没写教程了(可能会误导新手的菜鸟教程( ̄▽ ̄)”)。最近入职公司做前端实习,这几个星期来学到了移动端H5页面适配。(以前根本没做过移动端网页/(ㄒoㄒ)/~~,还是微信端的)所以把我学到的一个小知识点写下来,也分享给前端新手们。正文0x00 大概说明做移动端网页和pc端很大不同的便是现在移动端窗口分辨率繁多。很多时候UI给的设计图只有一份,还是按照iphone6设计的,这就让前端适配其他例如

pwc1996的博客 4万+

h5手机端适配字体设置

前言 手机端页面动态设置根元素,适配不同屏幕大小。 开始 <script> //rem为html的字体大小 通过改变html的字体大小达到适配的效果 remChange(); //监听屏幕改变resize事件 触发remChange方法 window.addEventListener("resize", remChange) function r...

qq_39352780的博客 5410

Android 屏幕适配基础

不同屏幕密度下,1p显示的物理长度不同 1dp在不同屏幕上显示相同的物理长度 sp只用在字体上,和dp一样为了让在不同设备上有一致的显示效果搞清楚屏幕的各种单位含义,是屏幕适配的基础含义:手机对角线的物理尺寸单位:英寸(inch),1英寸=2.54cm含义:每英寸的像素点数单位:dpi(dots per ich) 该屏幕的dpi=density*160dpi 在Android中,规定以160dpi(即屏幕分辨率为320x480 5.7英寸)为基准:1dp=1px含义:density-independent

嘴巴吃糖了 1356

flutter字体不跟随系统_flutter 屏幕尺寸适配和字体大小适配的实现

前言:现在的手机品牌和型号越来越多,导致我们平时写布局的时候会在个不同的移动设备上显示的效果不同,比如我们的设计稿一个View的大小是300px,如果直接写300px,可能在当前设备显示正常,但到了其他设备可能就会偏小或者偏大,这就需要我们对屏幕进行适配。安卓原生的话有自己的适配规则,可以根据不同的尺寸建立不同的文件夹,系统会根据当前的设备尺寸取对应的大小的布局。而flutter本身并没有适配规则...

weixin_39747721的博客 726

h5学习笔记:rem单位在一些安卓机计算异常

1.项目描述 一款App+h5进行混合开发,App通过webview方式对h5进行远程加载。h5采用了vuejs进行开发,适配采用了px2rem插件方式进行批量转换。 2.项目异常现象 混合开发增加了调试的难度,也增加了人员开发的沟通成本。使用了rem单位进行适配在大多数机型表现还算OK。我们通常的做法是设置html 根字体大小,然后通过rem来转换。如果设置根字体是100px=1rem,div宽如果是200px,则值为2rem。但是在现今碎片化严重的安卓机环境中,。这种想当然的想法会被打脸。经过查询了一些

夏天的树人的专栏 901

【H5测试】针对H5页面需要关注测试点总结

总结关于H5页面测试地

qq_45737438的博客 1331

class h5 点击后样式变化_产品设计中需要考虑的H5适配

最近有许多小伙伴咨询我,h5页面适配的需求该怎么提,细到什么程度?于是小编我总结了这篇文章。目录H5为什么要做页面适配页面适配主要解决哪些问题H5为什么要做页面适配移动端浏览器内核大多数是webkit内核,但是也有部分浏览器是其他类型内核,不同的浏览器内核对css样式的支持程度不一样,同一个css属性在不同浏览器的表现可能不同。手机屏幕尺寸不同,分辨率不同,可能会导致布局错乱或字体、图片...

weixin_39829166的博客 190

手机端h5页面利用rem进行适配的有效方案

关于H5页面的适配方案,有很多很多,各种方法有各种方法的优势。在博主做项目的实际开发过程中,常用的方案是利用rem进行适配。具体的适配原理如下: 需要明确的一点,各种浏览器对字体默认的大小为16px. 通常UI设计师给到前端开发的设计稿是以iphone6 手机大小设计的,前端开发时也是参照iphone页面显示效果进行开发。在开发的前期我们需要对浏览器默认字体的大小进行修改。使得,在页面上设置 ...

weixin_37861326的博客 2640
上一篇: 安卓面试
下一篇: Mac上搭建Jenkins自动打包工具带submodule,参数传递,上传到fir.im,钉钉通知
MatrixGame
博客等级 码龄9年 40粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MatrixGame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值