Android开发中关于资源文件的存储操作。对于Android资源也是非常重要的,主要包括文本字符串(strings)、颜色(colors)、数组(arrays)、动画(anim)、布局(layout)、图像和图标(drawable)、音频视频(media)和其他应用程序使用的组件。

资源目录:

目录

存放的资源

/res/anim/ 存放定义补间动画的XML文件
/res/color/ 存放定义不同状态下颜色列表的XML文件
  /res/drawable/

该目录下存放各种位图文件(如*.png、*.9.png、*.jpg*、.gif)等,除此之外还可是编译成如下各种Drawable对象的XML文件:

BitmapDrawable

NinePatchDrawable对象

StateListDrawable对象

ShapeDrawable对象

AnimationDrawable对象

Drawable的其它各种子类的对象

/res/layout/ 存放各种用户界面的布局文件
/res/menu/ 存放为应用程序定义各种菜单的资源,包括选项菜单、子菜单、上下文菜单资源
/res/raw/ 该目录下存放任意类型的原生资源。在java代码中通过调用Resource对象的openRawResource(int id)方法获取该资源的二进制输入流。

实际上,如果应用程序使用原生资源,推荐把这些原生资源保存到/assrts目录下,然后在应用程序中使用AssetManager来访问这些资源。

/res/values/  存放各种简单的XML文件。这些简单值包括字符串值、整数值、颜色值、数组等。

字符串、整数值、颜色值、数组等各种值都是存放在该目录下,而且这些资源文件的根目录都是<resources.../>元素,当我们为该<resource.../>元素添加不同的子元素则代表不同的资源,例如:

string/integer/bool子元素:代表添加一个字符串值/整数值/boolean值

color子元素:代表添加一个颜色值

array子元素或string-array、int-array子元素:代表添加一个数组

style子元素:代表添加一个样式

dimen:代表添加一个尺寸

由于各种简单值都可以定义在/res/values/目录下的资源文件中,如果在同一份资源文件中定义各种值,势必增加程序维护的难度。为此,Android建议使用不同的文件来存放不同类型的值:

arrays.xml:定义数组资源

colors.xml:定义颜色值资源

dimens.xml:定义尺寸值资源

strings.xml:定义字符串资源

styles.xml:定义样式资源

/res/xml/ 任意的原声XML文件。这些XML文件可在java代码中使用Resources.getXML()访问。

资源的相关类:

int getColor(int id)  //对应res/values/colors.xml 

Drawable getDrawable(int id) //对应res/drawable/

XmlResourceParser getLayout(int id) //对应res/layout/

String getString(int id) 和CharSequence getText(int id) //对应res/values/strings.xml

InputStream openRawResource(int id) //对应res/raw/

void parseBundleExtra (String tagName, AttributeSet attrs, Bundle outBundle) //对应res/xml/

String[] getStringArray(int id) //对应res/values/arrays.xml

float getDimension(int id) //对应res/values/dimens.xml

1. 字符串:/res/values/strings.xml

String str = getResources().getString(R.string.hello);
CharSequence cha = getResources().getText(R.string.app_name);

2.字符串数组:/res/values/arrays.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="flavors">
<item>Vanilla</item>
<item>Chocolate</item>
<item>Strawberry</item>
</string-array>
</resources>
String strs[] = getResources().getStringArray(R.array.flavors);

3.颜色值:/res/values/colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="text_color">#F00</color>
</resources>
getResources().getColor(R.color.code_sended)

4.尺寸值:/res/values/dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="txt_app_title">22sp</dimen>
<dimen name="font_size_10">10sp</dimen>
<dimen name="font_size_12">12sp</dimen>
<dimen name="font_size_14">14sp</dimen>
<dimen name="font_size_16">16sp</dimen>
</resources>
float myDimen = getResources().getDimension(R.dimen.dimen标签name属性的名字);

5.简单的Drawable图形:/res/drawable/drawables.xml

<?xml version="1.0" encoding="UTF-8"?>
<resources>
<drawable name="red_rect">#F00</drawable>
</resources>
ColorDrawable myDraw = (ColorDrawable)getResources().getDrawable(R.drawable.red_rect);

参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0204/838.html

Android开发(四)——Android中的颜色的更多相关文章

  1. Android开发:Android Studio开发环境配置

    一.android studio下载: 1.Windows版: 下载地址:https://pan.baidu.com/s/1-sg4dN_2B5nn2YJf-C7XLQ 提取码:yedc 2.Mac版 ...

  2. AllJoyn+Android开发案例-android跨设备调用方法

    AllJoyn+Android开发案例-android跨设备调用方法 项目须要涉及AllJoyn开源物联网框架.前面主要了解了一些AllJoyn主要的概念.像总线,总线附件,总线对象,总线接口这种概念 ...

  3. CSharp程序员学Android开发---3.Android内部元素不填充BUG

    最近公司组织项目组成员开发一个Android项目的Demo,之前没有人有Andoid方面的开发经验,都是开发C#的. 虽说项目要求并不是很高,但是对于没有这方面经验的人来说,第一步是最困难的. 项目历 ...

  4. android开发:Android 中自定义View的应用

    大家好我们今天的教程是在Android 教程中自定义View 的学习,对于初学着来说,他们习惯了Android 传统的页面布局方式,如下代码: <?xml version="1.0&q ...

  5. android开发在adapter中使用反射添加元素

    android开发中最常用的控件之一就是listview,伴随listview还要有adapter和放入适配器的item.然后假设其中有一部分item的生成符合一定规律,Item item = new ...

  6. Android开发技巧——设置系统状态栏颜色

    开门见山,先来三张效果图: 然后我们再来讲如何实现以及如何快速地实现. 如何实现 实现设置系统状态栏颜色需要至少在Android 4.4.2(API 19)以上.这是因为,在这个版本以下,没有任何的A ...

  7. Android开发——异步任务中Activity销毁时的问题

    0.  前言 在Android开发中经常会发生Activity的销毁重建,比如用户长时间接听一个电话后回到APP.在Android开发--Fragment知识整理(二)中我们提到了使用Fragment ...

  8. android开发:Android 中自定义属性(attr.xml,TypedArray)的使用

    今天我们的教程是根据前面一节扩展进行的,如果你没有看,请点击 Android高手进阶教程(三)查看第三课,这样跟容易方便你的理解! 在xml 文件里定义控件的属性,我们已经习惯了android:att ...

  9. Android开发:Eclipse中SqliteManager插件使用

    通常开发Android的时候要使用到数据库操作,会遇到下面小问题: 数据库文件在哪?怎样訪问或操作? 能够通过:打开DDMS->File Explorer看到的sqlite数据库在eclipse ...

  10. Android开发(24)---安卓中实现多线程下载(带进度条和百分比)

    当我们学完java中多线程的下载后,可以将它移植到我们的安卓中来,下面是具体实现源码: DownActivity.java package com.example.downloads; import ...

随机推荐

  1. HDU 2492 Ping pong (数状数组)

    Ping pong Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. Spring Cloud问题分析

    基于Spring Cloud框架开发时,经常会碰到各种开发问题,那么碰到这些问题时如何去解决呢?下面描述基于Spring Cloud问题定位的基本思路,大概可以分为如下几步: 排查配置问题 环境问题 ...

  3. JQ:命令行 json 解析神器 —— 命令行的Jsonview

  4. 使用 MD5 加密 去重对插入的影响

    现在有3000条数据,需要插入到数据库中去,使用的是对链接进行MD5加密, hashcode = md5(str(item_url))然后在数据库中设置 hashcode 为UNIQUE索引 3000 ...

  5. Flowable 的event介绍

    1 事件分为两种,一种是抛出:当流程执行到这时,抛出一个事件:另一种是捕获:当流程执行到这时,他就会等待一个事件的发生. 一个事件需要有事件定义,否则不会做任何“特殊”的事.对于一个流程实例,一个开始 ...

  6. Elastalert 监控

    1.logstash 做监控的优劣 适合match-then-alert 的方式 logstash-filter-metric logstash-input-http_poller 无状态.进程间数据 ...

  7. Nginx(六):Nginx HTTP负载均衡和反向代理的配置与优化

    一.什么是负载均衡和反向代理 随着网站访问量的快速增长,单台服务器已经无法承担大量用户的并发访问,必须釆用多台服务器协同工作,以提高计算机系统的处理能力和计算强度,满足当前业务量的需求.而如何在完成同 ...

  8. 【IOS学习】之四、协议,委托,分类粗解

    何为协议,何为委托,何为分类(类别)? 委托  即 代理 delegate:  他是 (接口的实现类)类似c中的回调.         把某个对象要做的事情委托给别的对象去做. 那么别的对象就是这个对 ...

  9. [svc]linux启动过程及级别

    Unix目录结构的来历 Linux 的启动流程 Linux 引导过程内幕 嵌入式系统 Boot Loader 技术内幕 centos6使用chkconfig治理服务和其原理 centos7的服务治理- ...

  10. 各个框架下的aop

    http://www.cnblogs.com/neverc/p/5241466.html