把非代码资源(如图片和字符串常量)和代码分离开来始终是一种很好的做法。通过把资源分离开来,可以使它们变得更加容易维护、跟新和管理。
一、创建资源
应用程序的资源存储在项目层次中res文件夹下
1、简单值--res/values
支持的简单值包括字符串、颜色、尺寸、样式和字符串数组或者整型数组,所有的简单值都存储在res/values文件夹下的XML文件中
(1)字符串
分离字符串有助于维护应用程序内部的一致性,而且可以更容易地国际化它们。一般存在strings.xml中
(2)颜色
(3)尺寸
尺寸是样式和布局资源中最常应用的资源。它们对创建像边界和肢体高度这样的布局常量来说非常有用。一般存在dimens.xml中
(4)样式和主题
样式资源可以指定视图说使用的属性值,从而使应用程序保持一个一致的用户界面体验。主题和样式资源最常见的用途是用来存储应用程序的颜色和字体。一般存在style.xml中
2、drawable--res/drawable
包括位图和可拉伸的PNG图像。
drawable—hdpi放置高分辨率的图片
drawable—mdpi放置中等分辨率的图片,
drawable—ldpi放置低分辨率的图片。
大部分人都把的图片放在drawable—mdpi中。但放在不同的位置是有影响的
例如在分辨率低于480*800时把图片放在drawable—mdpi中是不会有什么影响,但是当分辨率为420*800或高于它时就会出问题了。你的手机屏幕有那么大但是他会将图片拉伸,当加载图片后让你感觉该屏幕没有实际的大小,而如果将图片放到drawable—hdpi中则该问题就不会存在了。比如手机屏幕的大小为420*800如果你将图片放在drawable—mdpi中,那么你就要准备一张340*525分辨率的图片
3、布局--res/layout
布局资源可以让你在XML文件中设计用户界面的布局,而不是在代码中构建它们,从而可以把表示层从业务逻辑中分离出来。布局和代码的分离可以让你为不同的硬件配置创建优化的布局
4、动画(见第十一章)
Android支持三种类型的动画:
(1)属性动画--res/animator
可以使用属性动画器为目标对象几乎任何属性生成动画,属性动画机器有用,在Android中为fragment创建动画时会大量使用属性动画器。
(2)视图动画--res/anim
(3)逐帧动画--res/drawable
逐帧动画代表可以懂的drawable,它们是使用文件名(没有.xml扩展名)作为资源ID的
5、菜单--res/menu
创建菜单资源并使用XML设计菜单布局,而不是在代码中构建菜单。菜单资源可以用来定义应用程序内的activity和上下文菜单,它们可以提供与使用代码构建菜单时具有的相同的选项。
二、使用资源