安卓笔记:安卓应用资源

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_20539533/article/details/102751762

安卓四大组件:Activity,Service,BroadcastReceiver,ContentProvider

安卓允许把应用中用到的各种资源(字符串资源、颜色资源、数组资源、菜单资源等)集中放到/res/目录中定义,应用程序直接使用这些资源中定义的值。可通过R资源清单类访问的资源。

assets目录也用于存放资源(应用无法直接访问的原生资源,应用程序需要通过AssetManager以二进制流的形式读取资源)。不可通过R资源清单类访问的资源。

目录 存放的资源
/res/animator/ 定义属性动画的XML文件
/res/anim/ 定义补间动画的XML文件
/res/color 定义不同状态下颜色列表的XML文件
/res/drawable/ 适应不同屏幕分辨率的各种位图文件,也可能编译成各种Drawable对象的XML文件(BitmapDrawable对象、NinePatchDrawable对象、StateListDrawable对象、AnimationDrawable对象、Drawable的其他各种子类的对象)
/res/mipmap 主要存放适应不同分辨率的应用程序图标,以及其它系统保留的Drawable资源
/res/layout/ 各种用户界面的布局文件
/res/menu/ 为应用程序定义各种菜单的资源,包括选项菜单、子菜单、上下文菜单资源
/res/raw/ 任意类型的原资源(音频、视频等)
/res/values/ 各种简单值的XML文件。(字符串值、整数值、颜色值、数组等)
/res/xml/ 任意的原生XML文件(使用Resources.getXML()方法进行访问)

java或kotlin程序为安卓应用定义四大组件。XML文件为安卓应用定义各种资源。

1.在源程序中使用资源清单项

Android SDK会在编译应用时在R类中为/RES/目录下所有资源创建索引项,采用R类来访问资源。

[<package_name>.].R.<resource_type>.<resource_name>
  • package_name:指定R类所在包(使用全限定类名)。在源程序中导入R类所在包,可以省略包名。
  • resource_type:R类中代表不同资源类型的子类。
  • resource_name:指定资源的名称。

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

使用Resources类。

  • getXxx(int id):根据资源清单ID来获取实际资源。
  • getAssets():获取访问/assets/目录下资源的AssetManager对象。

示范代码:

//直接调用Activity的getResources()方法来获取Resources对象
Resources res = getResources();
//获取字符串资源
String a = res.getText(R.string.main_title);
//获取Drawable资源
Drawable logo =res.getDrawable(R.drawable.logo);
//获取数组资源
int[] arr = res.getIntArray(R.array.books);

3.在XML文件中使用资源

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

类似的不写。

字符串、颜色、尺寸资源对应的XML文件都位于/res/values/目录下。

颜色

RGB-》R(RED红),G(GREEN绿),B(BLUE蓝)三原色以及一个透明度(Alpha)四个值来表示颜色值。颜色值总是以#井号开头。

安卓颜色值支持四种常见形式:

  1. #RGB(0~f这16级颜色)
  2. #ARGB(0~f这16级颜色)
  3. #RRGGBB(00~ff这256级颜色)
  4. #AARRGGBB(00~ff这256级颜色)

.StateListDrawable资源

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

LayerDrawable资源

与StateListDrawable类型,LayerDrawable包含一个Drawable数组,系统会按照这些Drawable对象的数组顺序来绘制他们,索引最大的Drawable对象将被绘制在最上面。

ShapeDrawable资源

用于定义一个基本的几何图形。

ClipDrawable资源

代表从其他位图上截取的一个“图片资源”。

AnimationDrawable资源

代表一个动画。

属性动画(Property Animation)资源

样式资源(略)

主题资源

不用能作用与单个的View组件,对整个应用的所有Activity起作用或特定的Activity起作用。

国际化资源

为values、drawable目录添加几个不同的语言国家版本

values-语言代码-r国家代码
drawable-语言代码-r国家代码

自适应不同屏幕的资源

为不同屏幕尺寸、不同屏幕分辨率提供相应的布局资源、Drawable资源。

猜你喜欢

转载自blog.csdn.net/qq_20539533/article/details/102751762