1.src:存放所有的*.java源程序。

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

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:   存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:

.attrs.xml:自定义属性值的:具体可以参考 http://blog.csdn.net/jiangwei0910410003/article/details/17006087    · 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>            <item name="1,30,1">第三</item>            <item name="2,31,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:定义显示的样式文件;

<resources xmlns:android="http://schemas.android.com/apk/res/android">     <!--         Base application theme, dependent on API level. This theme is replaced         by AppBaseTheme from res/values-vXX/styles.xml on newer devices.     -->     <style name="AppBaseTheme" parent="android:Theme.Light">         <!--             Theme customizations available in newer API levels can go in             res/values-vXX/styles.xml, while customizations related to             backward-compatibility can go here.         -->     </style>     <!-- Application theme. -->     <style name="AppTheme" parent="AppBaseTheme">         <item name="android:windowNoTitle">true</item>     </style>     <!-- 全局的Activity切换动画 -->     <style name="MyTheme" parent="AppTheme">     <item name="android:windowAnimationStyle">@style/ActivityAnimation</item> </style>     <style name="ActivityAnimation">         <!--  打开activity,设置activity进入展示动画  -->         <item name="android:activityOpenEnterAnimation">@anim/pubblico_activity_anim_push_right_in</item>         <!--  打开activity,设置上个activity离开动画  -->           <item name="android:activityOpenExitAnimation">@anim/pubblico_activity_anim_push_left_out</item>         <!--  结束activity,设置上个activity进入动画  -->           <item name="android:activityCloseEnterAnimation">@anim/pubblico_activity_anim_push_left_out</item>         <!--  结束activity,设置当前activity离开动画  -->           <item name="android:activityCloseExitAnimation">@anim/pubblico_activity_anim_push_right_out</item>       </style> </resources> 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 animations的XML文件,但是最好还是分开存放)

13.res/animator:存放定义了propertyanimations(android 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和res/drawable这两个文件中的内容在这作一下详解:
首先说一下color文件夹,在这个文件夹下放的是color_selector.xml等文件,主要是用于背景色的selector,比如TextView中的textColor属性,点击改变TextView中的字体颜色,在这个文件中的文件color_selector.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>
主要的属性是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:drawable="@drawable/info_collect_btn_normal_bg"/><item android:state_selected="false" android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/info_collect_btn_normal_bg" /><!-- Non focused states --><item android:state_selected="true" android:drawable="@drawable/info_collect_btn_pressed_bg" /><!-- Focused states --><item android:state_focused="true" android:drawable="@drawable/info_collect_btn_pressed_bg" /><!-- Pressed --><item android:state_pressed="true" android:drawable="@drawable/info_collect_btn_pressed_bg" />
</selector>
这里的info_collect_btn_normal_bg和info_collect_btn_pressed_bg是图片资源,放在drawableXX文件夹下的。
同时也发现了在drawable_selector.xml中没有android:color属性,结合上面的color_selector.xml中没有android:drawable属性,知道了Android应该是根据文件夹来判断的,在color文件夹下的文件有android:color属性,在drawable文件夹下的文件有android:drawable属性
同时还要注意的是:像textColor和background属性引用到的文件不能乱引用,比如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

转载于:https://www.cnblogs.com/52-jk/p/4032527.html

Android中项目中各个文件夹的含义和用途详解相关推荐

  1. c++中.dll与.lib文件的生成与使用的详解

    c++中.dll与.lib文件的生成与使用的详解 --------------------------------------------------------------------------- ...

  2. Linux查找openssl文件夹,Linux下OpenSSL 安装详解 +图解

    安装环境: 操作系统:redhat 12.0 OpenSSL Version:openssl-0.9.8l Download 安装包(Linux source) :openssl-0.9.8l.tar ...

  3. vue中项目总结及文件夹配置

    工作项目中主要的文件夹使用 一.主要的文件夹配置 build文件夹: webpack配置文件 面是对 webpack 开发和打包的相关设置,包括入口文件.输出文件.使用的模块等 config 文件夹: ...

  4. android studio项目中将普通文件夹变成moudle

    有个moudle想挪一下地方,于是我直接Ctrl x,然后粘贴进了另一个项目文件夹里面,导致文件夹不是module,只是一个普通文件夹,解决方法如下: 将普通文件夹变成module 1.首先找到项目中 ...

  5. Linux中,根目录下文件夹的含义

    linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令  /dev 设备特殊文件  /etc 系统管理和配置文件  /etc/rc.d 启动的配置文件和脚本  /home 用户 ...

  6. Linux下各文件夹的含义和用途

    Linux根目录"/"下各个系统文件夹的含义和用途 1./boot 该目录默认下存放的是Linux的启动文件和内核. 2./initrd 它的英文含义是boot loader in ...

  7. attrib批量显示文件夹_DOS下批量修改文件及文件夹属性(attrib命令详解)

    attrib指令用于修改文件的属性,文件的常见属性有:只读.存档.隐藏和系统 只读属性是指文件只可以做读的操作,不能对文件进行写的操作,就是文件的写保护. 存档属性是用来标记文件改动的,即在上一次备份 ...

  8. Linux根目录下各文件夹的含义和用途

    Linux根目录"/"下各个系统文件夹的含义和用途 1./boot 该目录默认下存放的是Linux的启动文件和内核. 2./initrd 它的英文含义是boot loader in ...

  9. Python的os模块常用文件夹的增删改查详解

    python常用os模块 增 os.makedirs("path\\目录") 用于递归创建目录 删 os.remove("path")用于删除指定路径(path ...

最新文章

  1. 图解 SQL,这也太形象了吧!
  2. java 按顺序取出json_java取json 的方法
  3. Unity 4.3 2D 教程:新手上路
  4. 为什么中国程序员水平一直上不了层次?无非是这些原因!
  5. javascript 红宝书笔记之如何使用对象 如何操作数组
  6. 2018陕西省赛K题[watermelon_planting]
  7. 成为高手前必懂的TCP干货
  8. iOS开发——高级技术PassBook服务
  9. 电脑音量图标不见了,该如何找回?
  10. mysql socket错误处理_Mysql 报错处理
  11. ydui滚动加载:TypeError: Cannot read property '$emit' of undefined
  12. 计算机系军训口号四句霸气,军训口号四句霸气中队
  13. COGS 1008 贪婪大陆
  14. 个人配置环境和跑代码的一些坑
  15. [转贴]关于理工科学生应聘非本专业职位的一些建议
  16. Word 2013版本管理
  17. Oracle 20c 不再支持特性:传统审计不支持 统一审计(Unified Auditing)成主流
  18. 车牌识别系统不能连接服务器,详解车牌识别系统安装及故障处理方法
  19. 01组团队项目-Beta冲刺-2/5
  20. 对于建立图书馆管理系统的项目模拟经验

热门文章

  1. Brocade光纤交换机FOS升级
  2. 教你写一个可以找到.m文件所有接口名的命令行工具
  3. Tiny4412开发板 LED灯的控制
  4. windbg 调试技巧
  5. 安卓音乐播放器开发实例
  6. 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
  7. java面向对象程序设计第三版耿祥义pdf_java基础知识干货——封装
  8. js闭包循环原因_常见的三个 JS 面试题
  9. SD-WAN — 技术架构
  10. Overlay 网络 — Overview