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

布局多分辨率适配 :

技术咨询:请关注微信订阅号,微信名:非著名程序员,微信号:smart_android

时间: 2024-08-01 10:09:09

Android 字体大小怎么自适应不同分辨率?的相关文章

android字体大小根据分辨率自动调整

手机设备太多,分辨率也不一样,看到网上大部分的适应字体的方法是定义values320×480或value-hdpi方式去处理. 采用第一种的就惨了,很多设备的分辨率是不一样的,难道要每种都定义吗? 采用第二种的在平板电脑里没有效果. 最后还是代码的方式方便快捷... Java代码 1.//遍历设置字体 2.public static void changeViewSize(ViewGroup viewGroup,int screenWidth,int screenHeight) {//传入Act

android 字体大小自适应

  ndroid 想自适应哪个分辨率的就在你的工程res下添加values-XXXxXXX(如:values-values-1024x600)文件夹,在文件夹里新建dimens.xml文件格式如下: <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="text_size">40sp</dimen> </resource

( 转 ) Android自绘字体大小paint.settextsize随分辨率大小变化

1.获取当前设备的屏幕大小 DisplayMetrics displayMetrics = new DisplayMetrics(); this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 2.计算与你开发时设定的屏幕大小的纵横比(这里假设你开发时定的屏幕大小是480*800) int screenWidth = displayMetrics.widthPixels; int screenHeight = 

手机web不同屏幕字体大小高度自适应

body{font-size:0.6rem:} <script> //使用rem策略,不断更新html的fontsize (function(){     function sizeHtml(){         window.mtSizeBase = $(window).width()/16;         window.mtSizeBase = window.mtSizeBase>45?45:window.mtSizeBase;         $("html"

如何让Android字体自适应屏幕分辨率

在不同的分辨率下,Android字体大小怎么自适应分辨率的变化? 假设需要适应320x240,480x320分辨率.在res目录下新建文件夹values-320x240, values-480x320.然后在文件夹 values ,values-320x240 和 values-480x320 下新建xml文件dimens.xml,该xml文件内容如下: <?xml version="1.0" encoding="utf-8"?> <resourc

自适应浏览器高度和宽度+字体大小 JS(主要针对Java后端&gt;&gt;全栈工程师)

自适应浏览器高度和宽度+字体大小有点:1.能自动判断当前浏览器的高度和宽度(页面里面设置均百分比宽度)2.JS里面自己设置字体大小,在不同分辨率下显示不一样的字体3.在浏览器最大化时候,JS会自动判断屏幕高宽,从而使样式布局不会冲突变化4.在浏览器最小化时候,JS会自动判断屏幕高宽,从而使最小化的屏幕还和全屏效果一致,只是出现滚动条全屏效果图01最小化效果图02页面设计效果图自适应高宽JS效果图附上JS代码(引用前必须先引用Jquery!!!)// 作者:[email protected]//

Android 根据屏幕分辨率自动调整字体大小

1.在oncreate 里获取手机屏幕宽和高度 1 DisplayMetrics dm = new DisplayMetrics(); 2 getWindowManager().getDefaultDisplay().getMetrics(dm);// 取得窗口属性 3 int screenWidth = dm.widthPixels;// 窗口的宽度 4 int screenHeight = dm.heightPixels;// 窗口高度 2.在oncreate后获取Activity的Layo

html5移动端页面分辨率设置及相应字体大小设置的靠谱使用方式

对于动端网页编写CSS网上有很多介绍的文章,但在实际使用过程中还是会纠结. 网上的资料太多,且大多都是技术介绍型,特别是针对android上,网上写的各种麻烦,各种复杂,各种不接地气儿... 我在做移动端网页时,总是和美工设计的页面有出入,主要还是由于双方对移动端HTML5实现页面还了解还不够. 今天就研究一下各大互联网公司对于移动端页面的处理方式. 主要研究对象:BAT(度娘,阿狸,企鹅)这几家的移动端网站或webapp 主要研究点:viewport的设置,字体的设置,图片原始宽高设置 汝甚吊

响应式网页设计:rem设置网页字体大小自适应

首先简单科普一下什么是响应式网页.响应式网页是指会根据输出设备的分辨率不同,而自动调整布局的网页.同时,在输出设备分辨率改变时,也能及时自动调整.说穿了,就是三个字:自适应. 响应式网页不仅仅是响应不同类型的设备,而且需要响应不同的用户需求.响应式的初衷是为了让信息更好的传递交流,让所有人无障碍的获取信息,同时这也是 Web 的初衷. 当我们每天面对缤纷的互联网世界的时候,文字不仅仅传递给我们众多的信息资讯,而且在设计师的手里,文字在网页中的排版承载着一种艺术的直觉. 网页中常用的文字大小单位是