Android字体大小自适应不同分辨率的解决办法

发布时间 - 2026-01-11 01:46:25    点击率:

Android字体大小自适应不同分辨率的解决办法

今天有人问我,Android系统不同分辨率,不同大小的手机,字体大小怎么去适应呢?其实字体的适应和图片的适应是一个道理的。

一、原理如下:

假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240, values-480x320。然后在文件夹 values ,

values-320x240 和  values-480x320 下新建xml文件dimens.xml,该xml文件内容如下:

vaules-320x240下的dimens.xml内容如下:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
  <dimen name="btnTextSize">18sp</dimen> 
</resources> 

values-480x320 下的dimens.xml内容如下:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
  <dimen name="btnTextSize">18sp</dimen> 
</resources> 

针对不同分辨率的手机,android系统会自动适配加载相应文件中的字体的大小值,btnTextSize的值是不同的。在布局文件中引用的方式如下:

<TextView android:layout_width="fill_parent" 
  android:layout_height="wrap_content" android:gravity="center" 
  android:id="@+id/lblSet" style="@style/btntext" android:textSize="@dimen/btnTextSize"> 
</TextView> 

在java文件中这样调用:

 int size= (int)this.getResources().getDimension(R.dimen.Text_size);

通过这种方法,可以方便设置在不同分辨率下,字体的大小了。当然,不仅仅字体大小,宽和高等其他的一些属性,也可以通过类似的方式来设置!

二、1. 在视图的 onsizechanged里获取视图宽度,一般情况下默认宽度是320,所以计算一个缩放比率

 rate = (float) w/320  w是实际宽度 

2.然后在设置字体尺寸时 paint.setTextSize((int)(8*rate));   8是在分辨率宽为320 下需要设置的字体大小

  实际字体大小 = 默认字体大小 x  rate

<TextView  
  android:layout_width="fill_parent"  
  android:layout_height="wrap_content"  
  android:text="@string/hello" 
  android:textSize="@dimen/Text_size" 
  /> 

布局多分辨率适配 :

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android字体大小自适应不同分辨率的解决办法  # Android编程实现自动调整TextView字体大小以适应文字长度的方法  # android根据分辨率自动调整字体大小的实例代码  # Android TextView 设置字体大小的方法  # Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)  # Android中App字体大小不随系统改变而改变  # Android Studio设置主题与字体大小图文教程  # Android 自定义TextView实现文本内容自动调整字体大小  # Android Studio如何修改字体的大小  # 浅扒Android动态设置字体大小的示例  # Android如何动态调整应用字体大小详解  # 是一个  # 是在  # 其他的  # 问我  # 可以通过  # 希望能  # 谢谢大家  # 解决办法  # 自适应  # 加载  # 这种方法  # 目录下  # version  # class  # brush  # lt  # gt  # resources  # dimen  # encoding 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何在搬瓦工VPS快速搭建网站?  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  Laravel中的Facade(门面)到底是什么原理  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  音乐网站服务器如何优化API响应速度?  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  Laravel如何为API生成Swagger或OpenAPI文档  phpredis提高消息队列的实时性方法(推荐)  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  C++时间戳转换成日期时间的步骤和示例代码  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  Laravel如何使用Collections进行数据处理?(实用方法示例)  Android实现代码画虚线边框背景效果  如何在万网开始建站?分步指南解析  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Linux安全能力提升路径_长期防护思维说明【指导】  个人摄影网站制作流程,摄影爱好者都去什么网站?  linux top下的 minerd 木马清除方法  nodejs redis 发布订阅机制封装实现方法及实例代码  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何彻底删除建站之星生成的Banner?  如何快速搭建高效服务器建站系统?  如何挑选最适合建站的高性能VPS主机?  如何确保FTP站点访问权限与数据传输安全?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  大连网站制作公司哪家好一点,大连买房网站哪个好?  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  教学论文网站制作软件有哪些,写论文用什么软件 ?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  如何获取上海专业网站定制建站电话?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  如何在云虚拟主机上快速搭建个人网站?  如何在IIS中新建站点并解决端口绑定冲突?  java获取注册ip实例  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何实现建站之星域名转发设置?  如何撰写建站申请书?关键要点有哪些?  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  C语言设计一个闪闪的圣诞树  Laravel如何实现全文搜索功能?(Scout和Algolia示例)