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

教程详解

技术应用: AndroidOS / Android SDK

难易程度: 简单

预计完成时间: 15分钟

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

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

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

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

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

25ac3e412306302770dbed75e75ca4fa.png

使用动态字体尺寸

如果大家希望自己的应用文字能够根据用户偏好设置进行灵活调整,则需要使用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设备上看看文本框的实际显示效果。先看***幅图,用户在偏好设置中选择了普通字体;在第二幅图中,用户则在偏好设置中选择了超大字体。请注意文本框功能在不同的设置下是如何控制显示效果的。

7a9b121fbbe2fffadb864e2f20b2a48d.png

4f8db3a3363fd9388ad608a725fb9319.png

总结

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

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

【编辑推荐】

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

点赞 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回溯算法解决八皇后_4皇后问题和使用回溯算法的解决方案

回溯算法解决八皇后4-皇后问题 (4 - Queens problem) In 4- queens problem, we have 4 queens to be placed on a 4*4 chessboard, satisfying the constraint that no two queens should be in the same row, same column, or in same diagonal. 在4个皇后问题中 &#xff0c…

MAVEN 私有仓库库迁移

一、下载 Nexus:cd /usr/local/srcwget http://download.sonatype.com/nexus/oss/nexus-xxxx-bundle.tar.gz二、安装配置授权 cd /var/app/sudo cp nexus-xxxx-bundle.tar.gz /var/app/cd /var/app/sudo tar xvzf nexus-xxxx-bundle.tar.gzln -s nexus-xxxx nexuscp nexus/bin/…

写python笔记本推荐_写个python程序帮你清理垃圾

起步知识概要【临时文件(*.tmp)】【临时文件(*._mp)】【日志文件(*.log)】【临时帮助文件(*.gid)】【磁盘检查文件(*.chk)】【临时备份文件(*.old)】【Excel备份文件(*.xlk)】【临时备份文件(*.bak)】【COOKIE】 cookies\*.*【文件使用记录】 recent\*.*【IE临时文件】 Tempora…

0623TP框架联系

先用框架查询 namespace Home\Controller;use Home\Controller\FuLeiController; class WccController extends FuLeiController {//查看项目的方法function xiangmu(){$xiangmuD("xiangmu");$zhi$xiangmu->select();$this->assign("zhi",$zhi);$thi…

怎么重置blockinput的锁_OPPOA9锁屏密码忘了怎么办? OPPO忘记锁屏密码的解决办法...

看点:iPhone X原装屏与国产屏有哪些区别?看点:换7P、8P屏幕:C11和DTP和DKH的区别狮淘:不锈钢拆机片5个只需9.9元!包邮!每天10名OPPOA9锁屏密码忘了怎么办?OPPO A9手机忘记了锁屏密码…

Android的面孔_Actiyity

一、什么是Activity&#xff1f; 简单的说&#xff1a;Activity就是布满整个窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成&#xff0c;都会在Manifest.xml中指定一个主的Activity&#xff0c;如下设置 <actionandroid:name"android.in…

vsco怎么两个滤镜叠加_10 款超美的 VSCO 调色滤镜,怎么用都好看!

VSCO 里的滤镜简单 又 好看可太让人喜欢了&#xff01;但是 VSCO 的滤镜实在太多太多了有点让人眼花缭乱~今天旅拍菌请来了 摄影博主 丹丹儿啊专门来为大家盘点一波超美的 VSCO 滤镜合集&#xff01;怎么用 都很好看~微博&#xff1a;丹丹儿啊01滤镜&#xff1a;1ND1锐化&#…

linuxSAMBA共享

转自http://blog.chinaunix.net/uid-20537084-id-2977850.html经常要在Windows与Linux之间共享文件&#xff0c;Samba是一个很常见的选择&#xff1a;Linux运行Samba服务&#xff0c;Windows访问Linux上共享的文件。在不需要用户访问控制的场景下&#xff0c;Samba服务的安全级…

python状态码409_HTTP状态码

HTTP各种相应的状态码HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。它由 RFC 2616 规范定义的&#xff0c;并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展。中文名HTTP状态码外文名HTTP Status Code规范定义RFC 2616消息端…

Kubernetes Master High Availability 高级实践

才云科技云开源高级工程师唐继元受邀DBAplus社群&#xff0c;在线分享《Kubernetes Master High Availability 高级实践》&#xff0c;介绍如何构建Kubernetes Master High Availability环境。 以下是分享实录&#xff1a; 大家好&#xff0c;我是才云科技的唐继元&#xff0c;…

pythonmysqldb_python中MySQLdb的使用

基本的使用如上&#xff0c;还是很简单的&#xff0c;进一步使用还没操作&#xff0c;先从网上找点资料放上来&#xff0c;以备后续查看1.引入MySQLdb库import MySQLdb2.和数据库建立连接connMySQLdb.connect(host"localhost",user"root",passwd"sa&q…

分布式系统的唯一ID

2019独角兽企业重金招聘Python工程师标准>>> 需求 为什么需要唯一ID 让分布式系统中的需要辨别的元素&#xff0c;都能有唯一的辨识标志。 几乎所有的业务系统&#xff0c;都有生成一个记录标识的需求&#xff0c;例如&#xff1a; 消息标识&#xff1a;message-id订…

python程序跨平台桌面_Python中的跨平台桌面通知程序

在2010年的Pycon大会上有一个presentation on cross-platform Python development。还有一个关于它的html页面&#xff0c;其中包含一些跨平台通知的建议。但是&#xff0c;我在网上找不到它了&#xff0c;但我保存了一个本地副本&#xff0c;这是关于通知的部分&#xff1a;Th…

python去掉html标签_python 去除html标签的几种方法

#! /usr/bin/python# -*- coding:utf-8 -*-created on 2013-12-18author: javaimport refrom htmlparser import htmlparserclass filtertag():def __init__(self):passdef filterhtmltag(self,htmlstr):过滤html中的标签:param htmlstr:html字符串 或是网页源码self.htmlstr …

检查字符串是否包含数字的Python程序

Given a string and we have to check whether it contains only digits or not in Python. 给定一个字符串&#xff0c;我们必须检查它在Python中是否仅包含数字。 To check that a string contains only digits (or a string has a number) – we can use isdigit() functio…

android放微信@功能,Android仿微信语音消息的录制和播放功能

一、简述效果&#xff1a;实现功能&#xff1a;长按Button时改变Button显示文字&#xff0c;弹出Dialog(动态更新音量)&#xff0c;动态生成录音文件&#xff0c;开始录音&#xff1b;监听手指动作&#xff0c;规定区域。录音状态下手指划出规定区域取消录音&#xff0c;删除生…

Golang Clearing slice

//first method :slice nil// second method :slice slice[0:0]Source page : https://www.socketloop.com/tutorials/golang-clearing-slice转载于:https://www.cnblogs.com/Jim-william/p/5630096.html

python multithreading_操作系统OS,Python - 多进程(multiprocessing)、多线程(multithreading)...

多进程(multiprocessing)参考&#xff1a;1. 多进程概念multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping …

微信 android兼容性问题怎么解决方案,微信小程序兼容性问题

本文我们来谈谈微信小程序系统兼容性的那些坑。微信小程序兼容性问题微信小程序发布一周多了&#xff0c;兼容性问题&#xff0c;特别是 Android 平台兼容性问题特别严重。据我观察&#xff0c;好多小程序掉到兼容性的坑里。掉坑里不要紧&#xff0c;更让人捉急的是&#xff0c…

sap中泰国有预扣税设置吗_泰国的绘图标志| Python中的图像处理

sap中泰国有预扣税设置吗A colored image can be represented as a 3 order matrix. The first order is for the rows, the second order is for the columns and the third order is for specifying the color of the corresponding pixel. Here we use the BGR color format…