提升应用视觉Android效果的10个UI技巧

Android应用开发中,风格和设计或许不是最关键的要素,但它们在决定Android应用成功与否上确实扮演重要的角色。以下是10个Android应用的UI设计技巧,还有个附加技巧,能够提供你的Android应用的视觉吸引力。

技巧1:使用大小适当的图像

在图像方面,许多Android应用开发者采用的是大小单一的做法。尽管这会使资源管理变得更为简单,但就应用的视觉吸引力而言,这是个错误的做法。要让应用呈现出最佳的视觉效果,那么就应当针对具体的设备屏幕设计不同的图像。最适当的图像才能构建出最棒的用户体验。

技巧2:使用适当格式的图像

我们都见过有些应用在尝试加载某些大型图像时会暂停,这不仅仅因为图像的大小存在偏差,而且还因为图像采用了非理想的格式。Android平台支持许多种媒体格式,比如PNG、JPEG、GIF、BMP和WebP(游戏邦注:仅Android 4.0+版本支持)。PNG是无损图片的理想格式,而JPEG的呈现质量并不稳定。

Android还支持带有Nine-Patch的弹性图像。如果可行的话,可以考虑使用WebP来替代JPEG,因为这种格式在存储和下载时效率更高。也就是说,如果将其作为与较老格式同时使用的独立图片,那么应用整体规模会变大,这就削减了使用新格式的优势。

技巧3:运用微妙动画,颜色来呈现状态改变

在屏幕转场时运用微妙动画以及UI控制颜色变化来呈现应用状态改变,这会让你的应用更显专业感。比如,活动间的淡入淡出使屏幕转变更为自然,改变被按动的按键颜色会突显正在发生的用户动作,清晰地呈现出用户正在做的事情。

Android 3.x及随后的版本可开启硬件加速,这会让动画运行更为流畅。但是需要进行测试,因为并非应用的所有功能都能够兼容硬件加速。

技巧4:用圆角效果来软化UI

Button、PageView等用户界面控制按钮在屏幕上都会呈现矩形的像素形状,但这需要进行处理。在控制界面上,使用圆角效果来软化用户界面的外观,这显得很像Web的风格,但确实很受用户喜欢。

技巧5:在3D效果中使用一致性的“光照”

最新版本的Android平台使用全息样式和3D图标等。如果你在应用的控制按键中使用投影和其他此类样式,确保要使用一致性的“光照”。换句话说,要确保阴影在屏幕上的朝向一致。在图像编辑器中使用相同的数值来创造相同的斜度和纹理。

技巧6:使用高对比度配色方案

当某个家庭成员(游戏邦注:往往是老一辈的人)首次发现可以在邮件中使用带颜色的字体和背景,于是发送给你一封使用白色背景和柠檬黄色字体的电子邮件,这样的邮件阅读起来相当费劲。有些人在设计应用的屏幕时,可能会让玩家难以阅读或导航屏幕中的内容。使用适当的高对比度颜色,会让屏幕更易于查看,缓解眼睛的压力。要将配色方案作为系统资源的一部分,以此为基础来开展其他工作。

技巧7:使用大型和易读的字体

和上述不良配色方案一样,我们也会收到家庭成员发送来带有某些古怪字体、难以阅读的文字。相比其他字体,有些字体确实阅读起来更为容易。

字体大小也是个重要因素,在保持与其他屏幕功能的平衡性的前提下,尽量将字体制作得够大。就像在使用传真机时,使用小于12磅的字体并不合适。

Android 4.0的设计师推出了一种只适用于该平台的新字体,这种字体在移动设备上的阅读很容易,它被称为Roboto。

技巧8:不要过多偏离平台规范

许多成功的手机应用会使用人们较为熟悉的用户界面。它们有简单且主流的用户界面,其使用的控制方式也是用户所熟悉的。在用户界面控制和屏幕设计中,不要表现得过于另类。尽量简单化,与平台其他应用的表现保持一致。以平台作为决定应用表现和行为的线索。

如果你正在制作的UI与众不同,确保用AB测试等客观方法来比较新UI和传统UI,由此来决定新设计方案是否更优化,比如更有效、更易于使用或者看起来更为舒适。

技巧9:遵从UI指导原则

Android程序说明书中有许多可以整合到应用中的UI指导原则。根据应用所使用的Android版本的不同,这些指导原则往往也有所差异。当出现这种情况时,你需要制作多种资产来应对多种指导原则。指导原则涵盖了图标、小部件、菜单和活动等部分。

技巧10:测试用户界面

开发者往往不是优秀的QA或测试者。应用可稳定运行后,面向完全不熟悉应用设计和意图的用户开展测试是很有价值的做法。应用设计师往往自认为用户会觉得他们的应用UI很直观,情况或许并非如此。只有真正让用户来测试应用,你才能够在发布应用前发现许多意料之外的问题。

附加技巧:雇佣职业美术或图像设计师

现在,用户期望看到外观精美且设计专业的应用。正如你不会衣着随便地去参加面试,所以你应当投入足够的资源来润色应用外观后再将其发布。在多数情况下,程序员往往不是技术娴熟的美术人员,所以可以考虑雇佣职业美术人员来完成这项工作,只是要确保你对设计结果有清晰的认识。

当你埋头进行Android应用开发时,往往很容易遗忘用户界面设计。在你的应用相对较稳定后,浏览这个列表,对应用进行润色。通常来说,这些任务最好留到开发后期,因为此时的屏幕内容相对较为固定。

转载于:https://www.cnblogs.com/deve/archive/2012/02/29/2569024.html

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

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

相关文章

kotlin中判断字符串_Kotlin程序查找字符串中字符的频率

kotlin中判断字符串Given a string and a character, we have to find the frequency of the character in the string. 给定一个字符串和一个字符,我们必须找到字符串中字符的频率。 Example: 例: Input:string "IncludeHelp"character to…

OD使用

0x01 功能界面 序号1是汇编代码对应的地址窗口序号2是汇编对应的十六进制机器码窗口序号3是反汇编窗口序号4是反汇编代码对应的注释信息窗口序号5是寄存器信息窗口序号6是当前执行到的反汇编代码的信息窗口序号7是数据所在的地址序号8是数据的十六进制编码信息,序号…

windows mobile 开发总结--菜单

在开发时经常要创建菜单,并且动态显示和隐藏菜单或者是某个子菜单。以下就是实现的方法: 1。创建并显示菜单,先在资源里添加菜单,然后如下代码 SHMENUBARINFO mbi; ZeroMemory(&mbi, sizeof(SHMENUBARINFO)); mbi.cbSizesizeof(SHMENUBAR…

Java——集合的概述

* A:集合的由来* 数组是容器,集合也是容器* 数组的弊端:数组的长度是固定的,当添加的元素超过了数组的长度时,需要对数组重新定义,太麻烦* Java内部给我们提供了集合类,可以存储任意对象&#x…

排序算法中平均时间复杂度_操作系统中的作业排序(算法,时间复杂度和示例)...

排序算法中平均时间复杂度作业排序 (Job sequencing) Job sequencing is the set of jobs, associated with the job i where deadline di > 0 and profit pi > 0. For any job i the profit is earned if and only if the job is completed by its deadline. To complet…

python---文件处理

0x01 打开一个文件 python中内置了文件对象,通过open()函数就可以制定模式打开指定文件,并创建文件对象。该函数的格式如下: open(file[,moder[,buffering-1]])file:指定要打开或创建的文件名称,如果该文件不存在当前…

简易而又灵活的Javascript拖拽框架(四)

一、开篇 似乎拖拽已经被写烂了,没得写的了,可是我这次又来了~ 上一次写的是跨列拖放,这次我要带给大家的是跨页拖放。 可以到这里来看看效果:示例效果 说明:1、如果将方框拖动到页签上立刻释放掉的话&…

Java——集合的基本功能测试

* 1,boolean add<E,e> 添加* 确保此 collection 包含指定的元素&#xff08;可选操作&#xff09;。* 参数&#xff1a;e - 确定此 collection 中是否存在的元素。E - 代表Object类&#xff0c;说明该add可以添加任何对象&#xff0c;任意对象都是Object的子类对象&…

《那些年啊,那些事——一个程序员的奋斗史》——78

招人风波之后&#xff0c;就很少见武总往18楼跑了&#xff0c;大部分时间都是坐在22楼的隔间。而武总对段伏枥的抱怨&#xff0c;也仅仅只有那次&#xff0c;后来就再也没有提过。对于段伏枥而言&#xff0c;还要不要招新人&#xff0c;后续如何去招新人&#xff0c;已经不是自…

python---异常处理结构

python中提供了很多不同形式的异常处理结构&#xff0c;其基本思路都是先尝试执行代码&#xff0c;再处理可能发生的错误。 try…except… 在python异常处理结构中&#xff0c;try…except…使用最为频繁&#xff0c;其中try子句中的代码块为可能引发异常的语句&#xff0c;e…

用css网站布局之十步实录 (转载)

第一步&#xff1a;规划网站http://www.52css.com/article.asp?id175 第二步&#xff1a;创建html模板及文件目录等http://www.52css.com/article.asp?id176 第三步&#xff1a;将网站分为五个div 网页基本布局http://www.52css.com/article.asp?id177 第四步&#xff1a;网…

Java——集合转数组并对其进行遍历

* A&#xff1a;集合的遍历* 其实就是以此获取集合中的每一个元素* B&#xff1a;案例* 把集合转成数组&#xff0c;可以实现集合的遍历* public Object[] toArray() 按适当顺序&#xff08;从第一个到最后一个元素&#xff09;返回包含此列表中所有元素的数组。…

鱼油账号记录程序(续) - 零基础入门学习Delphi39

鱼油账号记录程序&#xff08;续&#xff09; 让编程改变世界 Change the world by program 课件同上一讲&#xff0c;这一讲主要演示编程操作和修改程序&#xff01; [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink hrefhttp://kuai.xunlei.com/d/LDKX…

python---Socket编程

Sockte是计算机之间进行网络通信的一套程序接口&#xff0c;相当于在发送端和接收端之间建立一个通信管道。在实际应用中&#xff0c;一些远程管理软件和网络安全软件大多数依赖于Socket来实现特定功能&#xff0c;由于TCP方式在网络编程中应用非常频繁&#xff0c;此处将对TCP…

格式转换-----PDF格式研究笔记(一)

格式转换-----PDF格式研究笔记&#xff08;一&#xff09; 现在我的几个计划都需要我能够对PDF格式进行解码&#xff0c;所以找了一下资料&#xff0c;找到了一个PDF1.3的手册&#xff0c;特放出下载&#xff0c;如果谁有更高版本的&#xff0c;请给我一份&#xff0c;谢谢。 …

(X)HTML嵌套规则

本文整理于互联网~ 简单认识了块元素和内嵌元素以后&#xff0c;下面就可以罗列 XHTML 标签的嵌套规则了&#xff1a; 1. 块元素可以包含内联元素或某些块元素&#xff0c;但内联元素却不能包含块元素&#xff0c;它只能包含其它的内联元素&#xff1a;<div><h1>&…

Java——集合带All的功能演示

package com.wsq.collection;import java.util.ArrayList; import java.util.Collection; public class Demo4_CollectionAll {public static void main(String[] args) {demo1(); //c1.addAll(c2);将c2整个集合给添加到c1中,即&#xff0c;c2集合中的每…

ASP.NET Web API 处理架构

这篇文章主要是介绍ASP.NET Web API的处理架构&#xff1a;当一个HTTP请求到达直到产生一个请求的过程。ASP.NET Web API 的处理架构图如下&#xff0c;主要有三层组成&#xff1a;宿主&#xff08;hosting&#xff09;&#xff0c;消息处理管道&#xff08;message handler pi…

python---可执行文件的转换

pyinstaller是常见的执行文件打包工具。该工具的安装方式非常简单&#xff0c;可运行在windows、MacOS X和GNU/Linux操作系统环境中&#xff0c;执行python2和python3。 用pyinstaller打包的执行文件&#xff0c;只能在于执行打包操作的系统类型相同的环境下运行。也就是说&…

Java——集合的遍历之迭代遍历

这些是下面的代码中所涉及到的所有方法&#xff1a;* 迭代概述:* 集合是用来存储元素&#xff0c;存储的元素需要查看&#xff0c;那么就需要迭代(遍历)* 也就是说&#xff0c;迭代就是遍历* * public interface Iterator<E> 对 collection 进行迭代的迭代器* …