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. 上海租房找房建议及条件,上海IT行业开发常见公司的位置地点

    上海租房,找房条件 以2号地铁线为中心,优先选择(回家方便,重点!),交通设施较集中地铁:2,3,4 区:普陀区,静安区,长宁区,闸北区,浦东新区,闵行区,徐汇区 路:镇坪路,威宁路,娄山关路,中山公 ...

  2. ubuntu(14.04) 下配置重写

    1.开启rewrite模块,使用命令:a2enmod  rewrite 2.在apache2.conf,配置你网站的目录(是目录而定)

  3. k8s实战之Service

    一.概述 为了适应快速的业务需求,微服务架构已经逐渐成为主流,微服务架构的应用需要有非常好的服务编排支持,k8s中的核心要素Service便提供了一套简化的服务代理和发现机制,天然适应微服务架构,任何 ...

  4. 【struts2】自定义登录检查拦截器

    在实际开发中,一个常见的功能要求是:有很多操作都需要登录后才能操作,如果操作的时候还没有登录,那么通常情况下会要求跳转回到登录页面. 1)如何实现这样的功能呢? 在具体实现之前,先来考虑几个问题: ( ...

  5. js html 页面倒计时 精确到秒

    <!doctype html> <html> <head> <meta charset="utf-8"> </head> ...

  6. CListCtrl的Report风格自绘

    原文链接: http://jingyan.baidu.com/article/5bbb5a1b38af1113eaa17910.html CListCtrl是MFC中运用最广泛的控件之一,很多软件都有 ...

  7. Fiddler高级用法-抓取手机app数据包

    在上一篇中介绍了Fiddler的基本使用方法.通过上一篇的操作我们可以直接抓取浏览器的数据包.但在APP测试中,我们需要抓取手机APP上的数据包,应该怎么操作呢? Andriod配置方法 1)确保手机 ...

  8. json解析为泛型对象

    一.方法 public <T> T jsonToObjByType(String str, Type type) { try { if (isValidJson(str)) { retur ...

  9. Fast Algorithm To Find Unique Items in JavaScript Array

    When I had the requirement to remove duplicate items from a very large array, I found out that the c ...

  10. SpringBoot不使用模板引擎直接返回html

    一.在resource目录下面建立文件夹,里面方静态页面. 路径:src\main\resources\static\page\index.html 访问:http://localhost:8080/ ...