Android应用的资源

1.无法通过R资源清单访问的原生资源,保存在assets目录下。

2.可通过R资源清单类访问的资源,保存在res目录下。

资源的类型以及储存方式

| 目录 | 存放的资源 |

| — | — |

| /res/animator/ | 存放定义属性动画的XML文件 |

| /res/anim/ | 存放定义补间动画的xml文件 |

| /res/color/ | 存放定义不同状态下颜色列表的xml文件 |

| /res/drawable/ | 存放各种位图文件 |

| /res/layout/ | 存放各种用户界面的布局文件 |

| /res/menu/ | 存放为应用程序定义各种菜单的资源,包括选项菜单,子菜单,上下文菜单的资源 |

| /res/raw/ | 存放任意类型的原生资源(如音频文件,视频文件) |

| /res/lvalues/ | 存放各种简单值的xml文件。这些简单值包括字符串值,整数值,颜色值,数组等 |

使用资源

在Android应用中使用资源可分为在Java代码和XML文件中使用资源,其中Java代码用于为Android应用定义四大组件,而XML文件则用于为Android应用定义各种资源。

1.在Java代码中使用资源清单项

2.在Java代码中访问实际资源

3.在XML文件中使用资源

字符串,颜色,尺寸资源


颜色值的定义

Android中的颜色值是通过红,绿,蓝三原色以及一个透明度值来表示的,颜色值总是以#号开头。

定义字符串,颜色,尺寸资源文件

字符串资源文件位于/res/values/目录下,案例如下:

<string name="Hello">Hello World!</string>

该示例的字符串文件为:

上面程序代码中每个<string…/>元素定义一个字符串,name属性定义字符串的名称。

颜色资源文件位于/res/values/目录下,例如:

<color name="c1">#F00</color>

如下文件是该示例的颜色资源文件

在这里插入图片描述

在这里插入图片描述

尺寸资源文件位于/res/values/目录下,代码规格如下:

在这里插入图片描述

使用字符串,颜色,尺寸资源

如前面介绍可知,在XML文件中使用资源按如下语法格式:

@[<package_name>:]<resource_type>/<resource_name>

在Java代码中使用资源按如下语法格式:

[<package_name>.R<resource_type>.<resource_name>]

数组资源


Android并不推荐在Java代码中定义数组,因为Android允许通过资源文件来定义数组资源,所以不以介绍

使用Drawable资源


图片资源

图片资源是最简单的Drawable资源,一旦系统在R资源清单类生成了指定资源的索引,接下来就可以在Java类中使用如下语法访问:

[<package_name>.]R.drawable.<file_name>

在XML文件中按如下语法访问:

@[<package_name>:]drawable/file_name

StateListDrawable资源

StateListDrawable用于组织多个Drawable对象,当使用StateListDrawable作为目标组件的背景,前景图片时,StateListDrawable对象所显示的Drawable对象会随目标组件状态的改变而自动切换。

定义StateListDrawable对象的XML文件的根元素为<selector…/>,该元素可以包含多个<item…/>元素,该元素可指定如下属性。

1.android:colorandroid:drawable: 指定颜色或Drawable对象。

2.android:state_xxx: 指定一个特定的状态。

语法如下:

<item android:color="hex_color" android:state_pressed:=["true" | "false"] />

LayerDrawable 资源

与StateListDrawable有点类似,在此不详讲

ShapeDrawable 资源

用于定义一个基本的几何图形,其XML文件的根元素是<shape…/>元素,该元素可指定如下属性。

android:shape=[“rectangle”|“oval”|“line”|“ring”]:指定定义哪种类型的几何图形

<?xml version="1.0" encoding="utf-8"?>

<shape

xmlns:android=“http://schemas.android.com/apk/res/android”

android:shape=[“rectangle” | “oval” | “line” | “ring”] >

<corners

android:radius=“integer”

android:topLeftRadius=“integer”

android:topRightRadius=“integer”

android:bottomLeftRadius=“integer”

android:bottomRightRadius=“integer” />

<gradient

《设计思想解读开源框架》

第一章、 热修复设计

  • 第一节、 AOT/JIT & dexopt 与 dex2oat

  • 第二节、 热修复设计之 CLASS_ISPREVERIFIED 问题

  • 第三节、热修复设计之热修复原理

  • 第四节、Tinker 的集成与使用(自动补丁包生成)

    第二章、 插件化框架设计

  • 第一节、 Class 文件与 Dex 文件的结构解读

  • 第二节、 Android 资源加载机制详解

  • 第三节、 四大组件调用原理

  • 第四节、 so 文件加载机制

  • 第五节、 Android 系统服务实现原理

    第三章、 组件化框架设计

  • 第一节、阿里巴巴开源路由框——ARouter 原理分析

  • 第二节、APT 编译时期自动生成代码&动态类加载

  • 第三节、 Java SPI 机制

  • 第四节、 AOP&IOC

  • 第五节、 手写组件化架构

    第四章、图片加载框架

  • 第一节、图片加载框架选型

  • 第二节、Glide 原理分析

  • 第三节、手写图片加载框架实战

    第五章、网络访问框架设计

  • 第一节、网络通信必备基础

  • 第二节、OkHttp 源码解读

  • 第三节、Retrofit 源码解析

    第六章、 RXJava 响应式编程框架设计

  • 第一节、链式调用

  • 第二节、 扩展的观察者模式

  • 第三节、事件变换设计

  • 第四节、Scheduler 线程控制

    第七章、 IOC 架构设计

  • 第一节、 依赖注入与控制反转

  • 第二节、ButterKnife 原理上篇、中篇、下篇

  • 第三节、Dagger 架构设计核心解密

    第八章、 Android 架构组件 Jetpack

  • 第一节、 LiveData 原理

  • 第二节、 Navigation 如何解决 tabLayout 问题

  • 第三节、 ViewModel 如何感知 View 生命周期及内核原理

  • 第四节、 Room 架构方式方法

  • 第五节、 dataBinding 为什么能够支持 MVVM

  • 第六节、 WorkManager 内核揭秘

  • 第七节、 Lifecycles 生命周期


    本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

    《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!
    第五节、 dataBinding 为什么能够支持 MVVM*

  • 第六节、 WorkManager 内核揭秘

  • 第七节、 Lifecycles 生命周期

    [外链图片转存中…(img-YJhK7fgp-1714761406647)]
    本文包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
    [外链图片转存中…(img-DMGmITBY-1714761406648)]
    《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》点击传送门,即可获取!

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值