1.android工程目录说明

1.src:存放全部的*.java源程序. java

2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存全部的资源ID. android

3.assets:能够存放项目一些较大的资源文件,例如:图片、音乐、字体等. 数组

4.res:能够存放项目中全部的资源文件,例如:图片(*.png*.jpg)、文本等. 框架

5.res/drawable-hdpi:保存高分辨率图片资源,可使用Resources.getDrawable(id)能够得到资源类型. 布局

6.res/drawable-ldpi:保存低分辩图片资源,可使用Resources.getDrawable(id)能够得到资源类型. 学习

7.res/drawable-mdpi:保存中等分辨率图片资源,可使用Resources.getDrawable(id)能够得到资源类型. 字体

8.res/layout:存放全部的布局文件,主要是用于排列不一样的显示组件,Android程序中要读取此配置. 动画

9.res/values: 存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称. this

.attrs.xml自定义属性值. spa

· arrays.xml定义数组数据

定义以下:

<?xml version="1.0" encoding="utf-8" ?>
<resources>     
    <string-array name="MyArray">          
        <item name="1,35,3">第一</item>           
        <item name="5,34,0">第二</item> 
    </string-array> 
</resources>



在代码中读取:


Resources r = this.getResources();

String[] ary = r.getStringArray(R.array.MyArray);



  • colors.xml:定义表示颜色的数据;

  • dimens.xml:定义尺度,可使用Resources.getDimension()得到这些资源;

  • strings.xml:定义字符串,Resources.getString()Resources.getText()方法得到这些资源

  • styles.xml:定义显示的样式文件;

10.res/raw:自定义的一些原生文件所在目录,像音乐、视频等文件格式.存放直接复制到设备中的任意文件.它们无需编译,添加到你的应用程序编译产生的压缩文件中.要使用这些资源,能够调用Resources.openRawResource(),参数是资源的ID也能够用,R.raw.somefilename,Resources.getRawResource()方法能够得到这些资源.

11.res/xml:用户自定义的XML文件,全部的文件在程序运行时编译到应用程序之中,在程序运行时可使用Resources.getXML()方法获取.

12.res/anim:用于定义动画对象.存放定义了补间动画(tweened animation)或逐帧动画(frameby frame animation)的XML文件.(该目录下也能够存放定义property animationsXML文件,可是最好仍是分开存放)

13.res/animator:存放定义了propertyanimationsandroid 3.0新定义的动画框架)的XML文件

14.res/color/:存放定义了颜色状态列表资源(ColorState List Resource)XML文件

15.res/drawable/:存放定义了图片状态列表资源(ColorState List Resource)XML文件

16.res/menu/:存放定义了应用程序菜单资源XML文件.
正确建立文件的方法:new Folder,名字menu,new Other——Android——XML,选择menu类型,填写名称,肯定便可.菜单资源文件必须放在res/menu目录中.菜单资源文件必须使用<menu>标签做为根节点.除了<menu>标签外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item><group>.

注意:

res/ color文件夹,在这个文件夹下放的是color_selector.xml等文件,主要是用于背景色selector,好比TextView中的textColor属性,点击改变TextView中的字体颜色,在这个文件中的文件color_selector.xml中定义以下:

主要的属性是android:color引用不一样的色值,而这些色值是在values/color.xml文件中定义的,好比:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="not_pressed">#000000</color>
    <color name="pressed">#ffffff</color>
</resources>

同时也能够发现,color_selector.xml中没有android:drawable属性,我不知道Android中是根据什么判断何时有android:drawable属性,何时有android:color属性的

下面来看一下res/drawable文件夹中的文件,这个文件夹中的文件drawable_selector.xml,主要是用于背景图的使用,Button中的android:background,点击改变背景,drawable_selecor.xml文件的定义:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:state_window_focused="false"  
        android:color="@color/not_pressed" />
    <item 
        android:state_selected="false" 
        android:state_focused="false" 
        android:state_pressed="false" 
        android:color="@color/not_pressed"/>
    <item 
        android:state_selected="true" 
        android:color="@color/pressed" />
    <item 
        android:state_focused="true" 
        android:color="@color/pressed" />
    <item 
        android:state_pressed="true" 
        android:color="@color/pressed" />
</selector>




这里的info_collect_btn_normal_bginfo_collect_btn_pressed_bg是图片资源,放在drawableXX文件夹下的.

同时也发现了在drawable_selector.xml中没有android:color属性,结合上面的color_selector.xml中没有android:drawable属性,知道了Android应该是根据文件夹来判断的,color文件夹下的文件有android:color属性,drawable文件夹下的文件有android:drawable属性

同时还要注意的是:textColorbackground属性引用到的文件不能乱引用,好比textColor引用了drawable_selector.xml,background引用了color_selector.xml会报错的.因此要注意使用.

可是如今有个问题:假设Button如今想点击变成绿色,不点击变成红色,这时候怎么办?

首先确定要用background的属性-->那确定就要用drawable_selector.xml文件引用,因此在drawable_selector_.xml中将android:drawable="@drawable/info_collect_btn_normal_bg"改为android:drawable="@color/not_pressed"便可,这里可能有个误解就是android:drawable只能引用drawable资源,可是事实证实这个误解是多余的!原理能够参考attr详解.


本文转自: http://blog.csdn.net/jiangwei0910410003/article/details/16985955

20150601


ANDROID学习笔记系列

--------------------------------------------

                    联系方式

--------------------------------------------

        Weibo: ARESXIONG

        E-Mail: aresxdy@gmail.com

------------------------------------------------
相关文章
相关标签/搜索