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

Android中项目中各个文件夹的含义和用途详解的更多相关文章

  1. 【转载】Linux下各文件夹的含义和用途

    原文地址:https://www.cnblogs.com/lanqingzhou/p/8037269.html Linux下各文件夹的含义和用途 Linux根目录”/“下各个系统文件夹的含义和用途 1 ...

  2. sublime中项目无法添加文件夹

    问题记录 mac中,使用vue init webpack project 后,在sublime中打开,但是添加新文件夹和删除,总提示没有权限, 然后用git提交吧 也不行,每次都要sudo 出现的提示 ...

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

    两种库: • 包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library.• 包含函数代码本身,在编译时 ...

  4. Nginx中的root&alias文件路径及索引目录配置详解

    这篇文章主要介绍了Nginx中的root&alias文件路径及索引目录配置,顺带讲解了root和alias命令的用法,需要的朋友可以参考下     root&alias文件路径配置ng ...

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

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

  6. linux文件夹目录含义及用途

    /boot,存放linux启动文件和内核: /initrd,boot loader initialized RAM disk,就是由boot loader初始化的内存盘.在linux内核启动前,boo ...

  7. eclipse中把多个项目放在一个文件夹里

    1..Package Explorer 可以在这里打开 2.选择Working sets 3.新建java working set 4.把文件夹显示出来 5.可以把项目移动到文件夹里面了,鼠标左键拖就 ...

  8. 如何在Android Studio项目中导入开源库?

    前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不 ...

  9. Unity中所有特殊的文件夹

    1. 隐藏文件夹以.开头的文件夹会被Unity忽略.在这种文件夹中的资源不会被导入,脚本不会被编译.也不会出现在Project视图中.2. Standard Assets在这个文件夹中的脚本最先被编译 ...

随机推荐

  1. SHINY-SERVER R(sparkR)语言web解决方案 架设shiny服务器

    1. shiny server简介 shiny-server是一种可用把R 语言以web形式展示的服务,其实RStudio公司自己构建了R Shiny Application运行的平台(http:// ...

  2. iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework

    编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...

  3. IOS行货自动打包

    通常打包采用xcodebuild和xcrun两个命令,xcodebuild负责编译,xcrun负责将app打成ipa.   常见步骤如下: 1.清理工程 /usr/bin/xcodebuild -ta ...

  4. Nginx + FastCgi + Spawn-fcgi + c 的架构

    参考: nginx+c/c++ fastcgi:http://www.yis.me/web/2011/11/01/66.htm cgi探索之路:http://github.tiankonguse.co ...

  5. maven nexus-staging-maven-plugin exception-connect timed out

    不知道是国内的网络的问题还是别的原因,在deploy一个maven的artifact到oss server的时候总是报错: Failed to execute goal org.sonatype.pl ...

  6. 【Vegas原创】RHEL6.2安装vmtools

    1,mount虚拟cdrom       # mount /dev/cdrom /mnt/cdrom   2, ls一下,看有没有      # cd /mnt/cdrom     # ls –l   ...

  7. Scala 深入浅出实战经典 第52讲:Scala中路径依赖代码实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  8. <a>标签href属性与onclick事件

    a标签主要用来实现页面跳转,可以通过href属性实现,也可以在onclick事件里实现. <a onclick="window.location.href='www.cnblogs.c ...

  9. java 反射: 当Timestamp类型的属性值为null时,设置默认值

    import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Metho ...

  10. Android 5.0 双卡信息管理分析

    首先,如前面的博文所讲的,Android5.0开始支持双卡了.另外,对于双卡的卡信息的管理,也有了实现,尽管还不是完全彻底完整,如卡的slot id, display name,iccid,color ...