Android学习第六弹之 Android字体大小自适应不同分辨率的方法

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"
    />

布局多分辨率适配 :

原文发布于微信公众号 - 非著名程序员(non-famous-coder)

原文发表时间:2015-07-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小白课代表

软件分享 | ZoomIt 4.5 演示辅助工具使用教程

ZoomIt是一款非常实用的投影演示辅助软件。它源自Sysinternals公司,后来此公司被微软收购,因此,有些网友也称ZoomIt为微软放大镜。ZoomIt...

12410
来自专栏增长技术

ProgressBar

自定义view实现下载进度的展示 控件完全自定义,字体大小,圆环宽度,实心或者空心,圆环的宽度,圆环的颜色,进度字体的粗细,字体颜色等等都可以自定义

19430
来自专栏我和未来有约会

Silverlight初级教程-动画

Silverlight初级教程 动画 在这一节里将要用到在“认识工作区”中提到的时间抽了。这里将和学习flash的过程一样做一个最简单的动画。 ...

196100
来自专栏GreenLeaves

WebStorm 快键键

ctrl+/ 单行注释 ctrl+shift+/ 块注释 ctrl+shift+ +/- 展开/折叠 ctrl+alt+L 格式化代码 ctrl+shift+ ...

19970
来自专栏coding for love

CSS进阶06-相对定位Relative Positioning

(注1:如果有问题欢迎留言探讨,一起学习!转载请注明出处,喜欢可以点个赞哦!) (注2:更多内容请查看我的目录。)

7820
来自专栏杨龙飞前端

浏览器渲染过程

15040
来自专栏Google Dart

AngularDart Material Design 切换 顶

用户可以点击切换按钮来更改状态。 通常,当您有一个ON / OFF选项时,您可以使用切换按钮。 如果您要一组中的多个选项中选中/取消选中,请改用material...

8420
来自专栏施炯的IoT开发专栏

Windows Mobile上的HTML解析器

Matjaž Prtenjak提出这个移动设备上HTML解析器、并表现在HTML Label上的最初目的,就是为了能够在界面上实时地改变一些控件上的文字内容和...

22650
来自专栏专业duilib使用+业余界面开发

Duilib技巧:背景图片平铺

28280
来自专栏vue学习

13、优化轮播图组件与vue深度处理器

(1)这里我们要用到vue的深度作用选择器,关于深度作用选择其详情看一看官网介绍:https://vue-loader-v14.vuejs.org/zh-cn/...

20920

扫码关注云+社区

领取腾讯云代金券