教程详解

技术应用: AndroidOS / Android SDK

难易程度: 简单

预计完成时间: 15分钟

【51CTO译文】在本文中,我们将介绍一些简单的处理方式,帮助开发人员轻松编写出能够应对各类设备型号的应用程序文本方案,同时为用户提供自定义文字尺寸功能。别担心,整个过程没什么难度,只要一步步按指南进行操作,大家再也不用为调整显示效果而劳心伤神了。

在这篇上手教程中,我们将讨论一些实用性步骤,指引开发人员在拥有足够灵活性的前提下保证文字清晰易读,同时使自己的产品能够适应多种屏幕类型及各类用户显示设定。

用户如何按需求配置字体设定

首先要强调一点,某些用户可能存在视力障碍甚至几近失明,他们无法顺利阅读一般尺寸下的文字内容。Android操作系统意识到了这些情况,并提供了一套显示辅助功能,使得用户可以根据自己的使用习惯随意缩放设备中文本字体的大小。

要在设备上修改字体设定,首先启用“设定”应用,然后选择“显示”项下的“字体尺寸”。用户可以在设备预置的四种文本字体尺寸中选择适合自己的方案(包含小、正常、大、超大),详见图一。

使用动态字体尺寸

如果大家希望自己的应用文字能够根据用户偏好设置进行灵活调整,则需要使用SP(即可缩放点)单位对文本字体尺寸加以定义。Android平台允许我们通过各种方式为各种显示要素的尺寸赋值。而在文本尺寸方面,我们一般推荐使用诸如DP(与设备无关的像素)及SP为显示密度进行单独设定。SP单位在文字尺寸方面表现***,因为它能够完全按照用户的显示设定调整实际效果。

以下内容就是我们在SP单位中利用TextView(即文本显示)功能定义字体尺寸:

android:id="@+id/textView4"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Sample Text - 26sp"

android:textSize="26sp"/>

而在标题、首行文本或者滚动文本框方面,我们往往不希望用户的偏好设定给显示效果带来影响。在这类情况下,大家就应该尝试DP单位,因为它完全根据设备的像素密度调整显示,而不涉及任何用户偏好设定。

使用固定像素尺寸

如果大家希望自己的应用文本在任何情况下都保持同样的尺寸,那么PX单位的固定像素尺寸功能会帮上大忙。虽然有时候这么做会使默认字体尺寸在某些设备上难以阅读,但如果大家有充分的理由坚持这一点,那么禁用文本内容缩放或尺寸变更还是有必要的。在这类情况下,大家不妨利用绝对尺寸值为字体设计大小,例如指定文字的像素显示数量。

在下面的文本框中,我们利用像素(简称PX)单位为字体设置固定的尺寸。通过这种方式,文本内容会严格按照我们的定义进行显示,而不会被用户的偏好设置或者其它干扰因素所影响。

android:id="@+id/textView5"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Sample Text - Fixed Pixels"

android:textSize="14px"/>

使用标准系统字体尺寸

Android平台定义了一套普遍适用的字体尺寸方案,我们可以将其直接套用到自己的应用程序当中:小、中、大三种选项基本能够满足各类用户需求。这些字体尺寸以SP单位为基础配置而成,因此会随着用户的偏好设置而发生变更。

下面的XML定义了三种文本框控制类型,一种会显示小字体、一种显示中字体、第三种则显示大字体。

android:id="@+id/textView1"

style="@android:style/TextAppearance.Small"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Sample Text - Small"/>

android:id="@+id/textView2"

style="@android:style/TextAppearance.Medium"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Sample Text  - Medium"/>

android:id="@+id/textView3"

style="@android:style/TextAppearance.Large"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Sample Text  - Large"/>

现在让我们将前面提到的内容综合起来,并在“冰淇淋三明治”版本的Android设备上看看文本框的实际显示效果。先看***幅图,用户在偏好设置中选择了普通字体;在第二幅图中,用户则在偏好设置中选择了超大字体。请注意文本框功能在不同的设置下是如何控制显示效果的。

总结

Android设备林林总总,尺寸不同且形状各异,因此Android用户必然会根据自己设备型号的不同对应用程序中的字体提出有针对性的需求。由于屏幕尺寸的固有限制,开发人员必须在应用程序中采取适当的应对措施,才能保证文本内容在任何机型中都拥有理想的可读性与灵活的排版效果。***步,确保自己的应用程序使用完全独立于设备之外的、以像素为基础单位的尺寸设置方案,但也不要忘了用户设置将给实际显示效果带来的巨大甚至是意料之外的影响。

【51CTO译稿,非经授权谢绝转载,合作媒体转载请注明原文出处、作者及51CTO译者!】

【编辑推荐】

【责任编辑:立方 TEL:(010)68476606】

点赞 0

android界面设计字体大小,Andoird用户界面设计上手指南:设置字体大小相关推荐

  1. ui设计现状与意义_对于ui设计行业来说,用户界面设计的发展现状是什么?

    [摘要]用户界面设计的发展现状主要依靠计算机技术,实现了设计与信息技术的有机结合,适应了当前社会经济发展的需要.界面设计涉及面广,如印刷设计.动画设计.游戏设计等各个领域.本篇文章将讲述对于ui设计行 ...

  2. android app 界面元素资源,免费的用户界面设计工具、工具包和资源

    来源:免费的用户界面设计工具,工具包和资源    发贴会员:图图网-sunqilong 都是一些UI界面与设计使用的元素,软件,网站等.内容很丰富,适合网页设计师,用户体验设计师,界面设计师,产品设计 ...

  3. 关于Web软件的界面设计——《Web软件用户界面设计指南》

    <Web软件用户界面设计指南>,一本小册子,花了不到一天的时间就看完了,但是,得到的东西却是非常多的. 在书里面指出了我们在做Web软件也就是B/S结构的软件的时候应该注意的问题,很多问题 ...

  4. java用户界面设计教程_Java图形用户界面设计(Swing)的介绍

    前言 Swing是一个用于开发Java应用程序用户界面的开发工具包.它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格.Swing开发人员只用很少的代码就可以利用Swing ...

  5. android 字体慢慢变大 网易新闻,如何在网易新闻中设置字体大小?在网易新闻中设置字体大小的方法...

    大家经常使用网易新闻吧,我们可以在里面查看许多新的消息,下面小编给大家分享一下在网易新闻中设置字体大小的方法,希望会对你有所帮助. 1.打开网易新闻客户端,进入网易新闻主界面后,在主界面中可以看到当天 ...

  6. w10计算机字体怎么设置在哪里设置,win10电脑修改系统默认字体的方法|win10系统怎么设置字体大小...

    win10电脑怎么改变系统字体?修改系统默认字体的方法 win10电脑怎么改变系统字体?系统字体一直都是一尘不变,虽然看起来方方正正比较便于确认,但总有用户想要修改系统默认字体设置,怎么修改系统默认字 ...

  7. html网站手机最小字体大小,html在手机浏览器如何设置字体大小

    动态计算好html的font-size之后,我们设置的大小不一定是真实的大小,所以,我们需要在设置完字体大小之后,再去重新获取一下html的font-size,看看实际的这个值(webview受到系统 ...

  8. 设置android textview字体,android-为活动中的所有textViews设置字体?

    android-为活动中的所有textViews设置字体? 是否可以为活动中的所有TextView设置字体? 我可以使用以下命令为单个textView设置字体: TextView tv=(TextVi ...

  9. java中如何设置字体样式_如何在JAVA中设置字体样式和大小?

    我是新来的Java和无法弄清楚如何格式化我的代码是这样的: 字体"宋体"字体大小"9"大胆如何在JAVA中设置字体样式和大小? 我想整个段落的格式化文本.我真的 ...

最新文章

  1. mysql -- 学习记录
  2. 数据结构学习-带头结点的单链表就地逆置
  3. IntegrityError at ** NOT NULL constraint failed: learning_logs_topic.owner_id
  4. 基于jQ+CSS3页面滚动内容元素动画特效
  5. java list平均分成5份_java中将一个List等分成n个list的工具方法(推荐)
  6. node获取图片路径_Deno 正式发布,彻底弄明白和 node 的区别
  7. linux c蜂鸣器驱动程序,〖Linux〗OK6410a蜂鸣器的驱动程序编写全程实录
  8. 腾讯Docker云平台GaiaStack
  9. Kafka3.0 SASL安全认证
  10. 如何用Python一键修改上万个文件名
  11. 在线IDE- Gitpod介绍
  12. 聊天室项目开发过程总结
  13. 【计算机组成原理】IEEE 754
  14. 【课设分享】基于51单片机的恒温控制器系统
  15. 【程序员入门记录】ThinkPad E470改造记录——系统改造
  16. 向量、矩阵乘法的几何意义(二) 矩阵乘法(Matrix Multiplication)
  17. 关于发明专利的小感悟
  18. 广告数据组-常用id归纳
  19. HTML表单元素初识1——零基础自学网页制作
  20. php偷偷接受数据,拒绝人工新增单条数据,PHP实现读取文件导入数据

热门文章

  1. deepin系统转为windows_windows系统下安装深度系统deepin
  2. java 修改最大nio连接数_关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?...
  3. php 下拉菜单多选get,Jquery实现select二级联动多选下拉菜单
  4. netbeans java中文_Ubuntu 下jdk安装中文字体 java 解决netbeans 方块字 中文乱码
  5. Spark入门-了解Spark核心概念
  6. Hadoop之HDFS应用
  7. SharePoint v3:忘掉模拟用户Impersonate,SPSecurity.RunWithElevatedPrivileges来了
  8. Linux Note
  9. asp.net面试集合
  10. MySQL 直接存储图片并在 html 页面中展示,点击下载