`
蓝月儿
  • 浏览: 49803 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

android工程下的文件资源类型(转载)

阅读更多
原始地址:http://geniusvic.blog.hexun.com/56133580_d.html



使用Window Live Writer发布的第一个随笔。

第一部分:资源类型
一个android工程中,有各种类型的资源文件,大致可以分为以下几种:

1、 颜色

颜色资源应该位于<resourses></resourses>标签下
路径位于:res/values/colors.xml,文件名随意
定义格式:<color name=”cname”>value</color>
代码调用:Resourse.getValues.getColor()
实例:
<?xml version="1.0" encoding="utf-8"?>

<resources>

    <color name="white">#FFFFFF</color>

    <color name="black">#000000</color>

</resources>
2、 字串

字串资源应该位于<resourses></resourses>标签下
路径位于:res/values/strings.xml
定义格式:<string name=”sname”>value</string>
代码调用: Resourse.getValues.getString()
实例:
<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, ResrouseTestActivity!</string>

    <string name="app_name">ResrouseTest</string>

</resources>
3、 图片

图片资源一般使用png格式,使用其他格式的会出现各种问题,貌似不支持gif格式的图片,可是使用Movie来播放gif格式的图片
路径位于:res/drawable
定义格式:可以直接存放图片也可以是xml等配置文件(一般用于自定义组件)
代码调用:getDrawable()
4、 图片的颜色

路径位于:res/values/my_drawable.xml,文件名随意
实例:
<?xml version="1.0" encoding="utf-8"?>

<resources>

    <drawable name="solid_red">#FF0000</drawable>

</resources>
5、 单位资源

单位资源应该位于<resourses></resourses>标签下
路径位于:res/values/dimen.xml ,文件名可以随意
使用和String、color类似
实例:
<?xml version="1.0" encoding="utf-8"?>

<resources>

    <dimen name="dimen_name">2px</dimen>

    <dimen name="dimen_px">5px</dimen>

    <dimen name="dimen_pt">3pt</dimen>

    <dimen name="dimen_dp">3dp</dimen>

</resources>
6、 Nine-patch(可以拉伸的小图片)

支持图片的拉伸
貌似就是所谓的png图片文件资源,图片在应用view的背景时,如果被设为background则会随view的大小变化做相应的拉伸和收缩,像ImageView这类设置src图片则不随view变化,按其自身大小显示部分或全部!
7、 菜单

菜单即可以从代码中实现也可以在资源文件中配置,这里就是要描述一下第二种
实例
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item           android:id="@+id/previous"           android:title="@string/previous"           android:enabled="false"  android:icon="@android:drawable/ic_media_previous"/>        <item           android:id="@+id/play_pause"           android:title="@string/play"           android:icon="@android:drawable/ic_media_play"/>    <item           android:id="@+id/next"           android:title="@string/next"           android:icon="@android:drawable/ic_menu_next"/></menu>8、 Layout布局

这个就是你经常看到的与用户交互的界面的xml文件,就是各个view的排列和嵌套,没什么好说的啦
9、 风格和主题

风格主要是指view的显示风格
路径位于:res/values/filename.xml,文件名随意
实例:
<?xml version=”1.0″ encoding=”utf-8″?>
<resources>
   <style name=”SpecialText” parent=”@style/Text”>
   <item name=”android:textSize”>18sp</item>
   <item name=”android:textColor”>#008</item>
</style>
</resources>
主题主要针对Activity等, 可以在Android Manifest中定义的<application>和<activity>元素将主题添加到整个程序或者某个 Activity,但是主题是不能应用在某一个单独的View里.风格可以自己定义也可以使用程序自带的或是继承已有的风格。
实例:
<?xml version="1.0" encoding="utf-8"?><resources>  <style name="CustomTheme">    <item name="android:windowNoTitle">true</item>    <item name="windowFrame">@drawable/screen_frame</item>    <item name="windowBackground">@drawable/screen_background_white</item>    <item name="panelForegroundColor">#FF000000</item>    <item name="panelBackgroundColor">#FFFFFFFF</item>    <item name="panelTextColor">?panelForegroundColor</item>    <item name="panelTextSize">14</item>    <item name="menuItemTextColor">?panelTextColor</item>    <item name="menuItemTextSize">?panelTextSize</item>  </style></resources>10、 动画

动画资源分为两种,一是实现图片的translate、scale、rotate、alpha四种变化。还可以设置动画的播放特性;另一种是帧动画,逐帧播放设置的资源
路径位于:res/anim/filename.xml,文件名随意
先说一下第一种:
<set xmlns:android="http://schemas.android.com/apk/res/android">                                   <translate android:interpolator="@android:anim/accelerate_interpolator"                                         android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0"                                         android:toYDelta="180" android:duration="2000" />                    <scale android:interpolator="@android:anim/accelerate_interpolator"                                         android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0"                                         android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%"                                         android:duration="2000" />                    <alpha android:fromAlpha="1.0" android:toAlpha="1.0"                                         android:duration="@android:integer/config_mediumAnimTime" />                    <rotate ....各个属性></rotate>                    <Interpolator >可以使用其子类和属性定义动画的运行方式,先快后慢,先慢后快等</Interpolator></set>  下面是第二种资源
<animation-list xmlns:android=”http://schemas.android.com/apk/res/android”
android:oneshot=”true”>
    <item android:drawable=”@drawable/rocket_thrust1″ android:duration=”200″ />
    <item android:drawable=”@drawable/rocket_thrust2″ android:duration=”200″ />
    <item android:drawable=”@drawable/rocket_thrust3″ android:duration=”200″ />
</animation-list>


第二部分:相关文件夹介绍

在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。在后面会介绍如何读取assets文件夹的资源!

目录Directory
资源类型Resource Types

res/anim/
XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象

res/drawable/
.png、.9.png、.jpg文件,它们被编译进以下的Drawable资源子类型中:
要获得这种类型的一个资源,可以使用Resource.getDrawable(id)
位图文件
9-patches(可变尺寸的位图)
为了获取资源类型,使用mContext.getResources().getDrawable(R.drawable.imageId)
注意:放在这里的图像资源可能会被aapt工具自动地进行无损压缩优化。比如,一个真彩色但并不需要256色的PNG可能会被转换为一个带调色板的8位PNG。这使得同等质量的图片占用更少的资源。所以我们得意识到这些放在该目录下的二进制图像在生成时可能会发生变化。如果你想读取一个图像位流并转换成一个位图(bitmap),请把图像文件放在res/raw/目录下,这样可以避免被自动优化。

res/layout/
被编译为屏幕布局(或屏幕的一部分)的XML文件

res/values/
可以被编译成很多种类型的资源的XML文件。
注意:不像其他的res/文件夹,它可以保存任意数量的文件,这些文件保存了要创建资源的描述,而不是资源本身。XML元素类型控制这些资源应该放在R类的什么地方。
尽管这个文件夹里的文件可以任意命名,不过下面使一些比较典型的文件(文件命名的惯例是将元素类型包含在该名称之中):
array.xml 定义数组
colors.xml 定义color drawable和颜色的字符串值(color string values)。使用Resource.getDrawable()和Resources.getColor()分别获得这些资源。
dimens.xml定义尺寸值(dimension value)。使用Resources.getDimension()获得这些资源。
strings.xml定义字符串(string)值。使用Resources.getString()或者Resources.getText()获取这些资源。getText()会保留在UI字符串上应用的丰富的文本样式。
styles.xml 定义样式(style)对象。

res/xml/
任意的XML文件,在运行时可以通过调用Resources.getXML()读取。

res/raw/

res/assets/
直接复制到设备中的任意文件。它们无需编译,添加到你的应用程序编译产生的压缩文件中。要使用这些资源,可以调用Resources.openRawResource(),参数是资源的ID,即R.raw.somefilename。assets下也可以放置任意文件,使用 Activity.this.getAssets().open("519.txt");打开


分类: Android
分享到:
评论

相关推荐

    Android 文件资源管理器源码

    5. **文件过滤与分类**:根据文件类型(如图片、音频、文档等)进行分类,可能使用`MIME类型`进行识别。 6. **多选与剪贴板功能**:允许用户选择多个文件进行复制、剪切、粘贴等操作,需要实现数据的临时存储。 7....

    Android资源文件混淆工具

    总的来说,资源文件混淆是提高Android应用安全性的重要步骤,它能有效防止资源被轻易解析,增加逆向工程的难度。`resguard-tools`作为一款专门的混淆工具,为开发者提供了一种便捷的资源混淆方案,有助于保护应用的...

    Android如何获得网络资源的大小

    在Android应用开发过程中,我们常常需要下载各种类型的网络资源,比如图片、音乐、视频或文档等。为了提供更好的用户体验,开发者通常希望能够在下载前预知这些资源的大小,从而合理安排下载计划,避免不必要的流量...

    android studio 生成Jar包并调用资源文件

    使用android studio生成jar包,并且使用映射来完美调用资源文件。包含两个工程,一个如何生成jar包,一个是如何使用jar包,调用资源文件。使用详情可以关注我的blog,http://blog.csdn.net/jujishou521

    android 将assets 下的文件复制到手机内存中

    在Android开发中,有时我们需要将应用内部的资源文件,如配置文件、数据库文件或静态数据等,复制到手机的外部存储(内存或SD卡)以便于应用运行时使用。这个过程通常涉及到Android的文件系统操作和权限管理。下面将...

    文件复制及进度条 android 文件复制 进度条 progressdialog

    在Android开发中,文件复制和进度条的显示是常见的需求,尤其在移动应用中,用户可能需要将数据从一个位置移动到另一个位置,或者在后台下载文件时展示进度。`ProgressDialog`是Android SDK提供的一种对话框组件,...

    Android7.0 Intent打开文件管理器 获取文件真实路径

    Android7.0 Intent打开文件管理器 获取文件真实路径。虽然网上很多demo,但是没有一个能够兼容所有Android机的,去网上学习了然后自己亲测过手机分别有Android7.0/6.0/4.3个版本。

    android打开各种文件

    你可以使用`MimeTypeMap`类来获取文件的MIME类型,或者在知道文件类型的情况下直接指定。 3. 检查可用的应用:在发送Intent之前,需要确保有应用能处理这个Intent。使用`resolveActivity()`方法检查是否有匹配的...

    android socket局域网文件传输

    "android socket局域网文件传输"这个主题涉及到的是如何在局域网环境下,通过Android设备与另一台设备(例如电脑)进行文件的发送和接收。在本文中,我们将深入探讨相关的知识点,包括Socket的基本概念、Android中的...

    android webview上传文件

    在服务端接收到文件后,通常会进行一些验证和处理,例如检查文件类型、大小等,然后保存到服务器的某个位置。你提供的`fileUpload_20130819.zip`可能包含了服务端的源码实现,可以查看解压后的代码以了解具体的处理...

    android:assets下的文件复制到SD卡

    在Android开发中,有时我们需要将应用内部的资源文件,如图片、文本或配置文件等,复制到外部存储(如SD卡)以便于后续的操作,比如读取大文件以减轻内存负担,或者创建用户可访问的数据目录。`android:assets`是...

    Android文件管理器源码

    6. **文件过滤和分类**:为了提供更好的用户体验,文件管理器可能会根据文件类型进行分类,比如图片、音频、视频等。这需要解析`MIME`类型并实现相应的过滤逻辑。 7. **网络文件操作**:现代的文件管理器还可能支持...

    android项目中读取ini配置文件

    在Android项目中,`assets`文件夹用于存放应用运行时需要的非资源文件,如配置文件、数据库、文本等。要将`ini`文件放入此目录,只需在项目的`src/main/assets`目录下创建一个`ini`文件,例如`config.ini`,并将所...

    android 播放局域网共享多媒体文件

    在Android平台上,播放局域网共享的多媒体文件是一项常见的需求,尤其在智能家居、企业协作等场景下。要实现这一功能,开发者需要理解Android多媒体框架、网络编程以及文件系统操作等多个方面的知识。以下将详细讲解...

    Android文件上传.rar

    通过以上步骤和提供的博客资源,开发者可以深入理解Android中的文件上传机制,并运用到实际项目中。博客文章通常会包含具体的代码示例和详细解释,有助于理解和实践。在阅读和学习过程中,结合实际操作,可以更好地...

    android 获取服务器上资源(图片,文本)

    在Android开发中,获取服务器上的资源,如图片和文本,是一项常见的任务。HttpURLConnection是Java提供的一个基础网络连接类,可以用于实现与HTTP服务器的通信。在这个过程中,我们需要理解网络请求的基本原理,以及...

    Android手机间文件互传实例

    在Android平台上,文件互传是常见的操作,尤其在多设备协作或者数据共享的场景下。本文将深入探讨如何实现Android手机间的文件传输实例,主要涉及的技术点包括:蓝牙传输、Wi-Fi Direct、Airdrop(仅限部分Android...

    Android 下载文件Demo

    在Android开发中,下载文件是一项常见的任务,尤其在构建应用时需要从服务器获取资源或更新数据。本"Android 下载文件Demo"旨在演示如何利用字节流进行文件下载操作。在Java和Android中,输入输出流(IO流)是处理...

    android jni使用libzip读取压缩文件

    在Android环境中,通过JNI调用libzip库可以实现原生层对ZIP文件的操作,这在处理大量数据或者需要高效读取压缩文件的场景下非常有用。 首先,你需要在Android项目的jniLibs目录下添加libzip库的.so文件,确保它们...

Global site tag (gtag.js) - Google Analytics