第三章 资源分离

把非代码资源(如图片和字符串常量)和代码分离开来始终是一种很好的做法。通过把资源分离开来,可以使它们变得更加容易维护、跟新和管理。

一、创建资源

应用程序的资源存储在项目层次中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和上下文菜单,它们可以提供与使用代码构建菜单时具有的相同的选项。

二、使用资源

时间: 2024-09-30 21:11:26

第三章 资源分离的相关文章

【WPF学习】第三十五章 资源字典

原文:[WPF学习]第三十五章 资源字典 如果希望在多个项目之间共享资源,可创建资源字典.资源字典只是XAML文档,除了存储希望使用的资源外,不做其他任何事情. 一.创建资源字典 下面是一个资源字典示例,它包含一个资源: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/wi

使用Micrisoft.net设计方案 第三章Web表示模式

第三章Web表示模式 体系结构设计者在设计第一个作品时比较精简和干练.在第一次设计时,并清除自己做什么,因此比较小心谨慎.第二个作品是最危险的一个作品,此时他会对第一个作品做修饰和润色,以及把第一次设计的边缘性设计思想都用在第二个作品,结果导致设计过头. 最初的Web很简单,只是有几个简单的Html页面组成,实现信息共享.随着业务的发展,需要根据业务来决定显示什么,于是开发了CGI编程,把大量的业务逻辑写到CGI中,然后输出到页面.随着发展,CGI编程模式受到了挑战,不能满足发展的需求,于是开发

Pro ASP.NET Core MVC 6th 第三章

第三章 MVC 模式,项目和约定 在深入了解ASP.NET Core MVC的细节之前,我想确保您熟悉MVC设计模式背后的思路以及将其转换为ASP.NET Core MVC项目的方式. 您可能已经了解本章中讨论的一些想法和约定,特别是如果您已经完成了高级ASP.NET或C#开发. 如果没有,我鼓励你仔细阅读 - 深入地理解隐藏在MVC背后的东西可以帮助你在通读本书时更好地与MVC框架的功能联系起来. MVC的历史 模型视图控制器模式起源于20世纪70年代后期,来自施乐PARC的Smalltalk

第三章线程同步辅助类

Java 7 并发编程实战手册目录 代码下载(https://github.com/Wang-Jun-Chao/java-concurrency) 第三章线程同步辅助类 3.1简介 ?信号量(Semaphore):是一种计数器,用来保护一个或者多个共享资源的访问.它是并发编程的一种基础工具,大多数编程语言都提供了这个机制. ? CountDownLatch:是Java语言提供的同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许线程一直等待. ? CyclicBarrier也是Java语言

spring security oauth2 jwt 认证和资源分离的配置文件(java类配置版)

最近再学习spring security oauth2.下载了官方的例子sparklr2和tonr2进行学习.但是例子里包含的东西太多,不知道最简单最主要的配置有哪些.所以决定自己尝试搭建简单版本的例子.学习的过程中搭建了认证和资源在一个工程的例子,将token存储在数据库的例子等等 .最后做了这个认证和资源分离的jwt tokens版本.网上找了一些可用的代码然后做了一个整理, 同时测试了哪些代码是必须的.可能仍有一些不必要的代码在,欢迎大家赐教. 一.创建三个spring boot 工程,分

linux及安全《Linux内核设计与实现》第三章——20135227黄晓妍

第三章 (由于linux不区分进程和线程,所以它们在linux中被称为task,也叫任务) 总结:本章主要包括进程以及线程的概念和定义,Linux内核如何管理每个进程,他们在内核中如何被列举,如何创建,最终如何消亡.操作系统存在的意义在于运行用户程序,进程管理是所有操作系统的心脏所在. 3.1进程 进程是处于执行期的程序,是正在执行的程序代码的实时结果.但不仅局限于一段可执行的代码,还包括其他资源(打开的文件,挂起的信号,内核内部数据,处理器的状态,一个或者多个内存映射的内存地址空间,一个或者多

第三章 基本粒子

                  第三章      基本粒子 世事如棋,每局都光怪离奇:我从10岁看古体竖排<西游记>.<红楼梦>开始至今,所看的书何止万卷?但就是不长一点文艺细胞:往往绞尽脑汁也倒不出一点墨水.我常问自己?为什么? 我真的不明白,或许自己就是一只小小的笨鸟吧.不会写?我还不会抄吗?好了,就从老爹那里抄点诗镇楼吧. 1.咏蝉(我就当是咏某些科班吧) 飞鸣高处择浓荫, 自诩清操不可伦. 莫再枝头唱高调, 扰人幽梦到黄昏.   2.咏梅   三分烂漫七分狂, 托迹孤山

《从0到1》笔记 第三章 所有成功的企业都是不同的

第三章 所有成功的企业都是不同的----科技企业的创新就是为了垄断,成功的科技企业都是垄断式的. 在商界,钱就是一切,或至少是非常重要.垄断者除了想着赚钱外还有余力想其它事情,而非垄断者就不行.在完全竞争中,企业着眼于短期利益,不可能对未来进行长期规划.要想企业从每日的生成竞赛中解脱出来,唯一的方法就是:获取垄断利润. 企业成功的原因各有不同:每个垄断企业都是靠解决独一无二的问题而获得垄断地位:而企业失败的原因却相同:它们都无法逃脱竞争. 国内的垄断者,如百度,解决了中文搜索的问题,垄断了搜索的

第三章 数据处理

第三章  处理数据 3.1  简单变量 3.1.1  变量名 C++标识符命名规则如下:    ●  在名称中只能使用字母字符.数字和下划线    ●  名称的第一个字符不能是数字   ●  区分大写字母和小写字母   ●  不能将C++关键字用作名称   ●  以两个下划线或下划线和大写字母开始的名称被保留给实现(编译器及其资源)使用,以一个下划线开头的名称被保留给实现(库函数的实现).   ●  C++对名称的长度没有限制,但是某些平台有限制 3.1.2  命名方案 在变量名中使用变量类型作