Android资源笔记

应用资源可分为两类

  1. 可通过R资源清单类访问的资源(通常保存在res目录下)
  2. 原生资源(保存与assets目录下)通过assetManager以二进制流的形式读取资源

通常情况,可以使用int类型的资源清单代替应用资源
若需要使用实际资源,可通过Android的Resources类提供的方法根据资源ID获取实际资源

Resources: getXxx(int id) 根据ID来获取实际资源
            getAssets() 获取访问assets/目录下资源的AssetsManager对象

代码实例: Resources res=getResources();Resources由Context调用getResources方法获取
//获取资源
String mTitle=res.getText(R.string.title);
Drawable mPic=res.getDrawable(R.drawable.pic);
int []arr=res.getIntArray(R.array.arrs);

在XML文件中使用资源

先定义
<resources>
<color name="red">#ff00</color>
<string name="h">hao</string>
<resources>

后使用
android:textColor="@color/red"
android:text="@string/h

字符串资源、颜色资源、尺寸资源对应的名称:R.string R.color R.dimen
由于这些资源的索引为int型

使用对应的数组
int[]colorIds=new int[]{R.color.a1,R.color.a2};
float dimen=this.getResources().getDimension(R.dimen.in_pixels)

数组资源使用(结合listview布局使用)android:entries属性

普通类型的数组

Drawable资源

支持的图像格式git、jpg, png .9.png,若XML文件作为Drawable子类的对象,同为Drawable资源

若想在程序中获得Drawable对象,使用方法getDrawable(int id)方法

(状态选择器)StateListDrawable资源

XML文件根元素<selector.../> <item.../>
状态是否获取焦点 是否按下状态 勾选 可用 激活

LayerDrawable资源按照Drawable对象数组的顺序进行绘制他们

ShapeDrawable资源(自定义绘制几何图形如:矩形、线条、圆等)

<shape adnroid:shape=["line"|"ovel"|"ring"|"rectangle"]>
定义语法如下
四个角的弧度:corners
渐变色填充:gradient
大小:size
几何形状的内边距:padding
单种颜色填充:solid
为几何形状绘制边框:stroke

举例如下:
<shape...
android:shape="rectangle">
设置填充色
<solid adnroid:color="#fff"/>
<padding android:left="4dp"/>
设置边框
<stroke android:width="3dp" android:color="#ff0"/>

ClipDrawable资源(从其它位图上截取一个片段)语法如下:
android:drawable 指定截取的源Drawable对象
android:clipOrientation:指定截取方向
android:gravity 指定截取的时的对齐方式

使用ClipDrawable对象可调用setLevel(int level)方法设置截取区域的大小 0表示截取片段为空,10000表示整张图片

AnimationDrawable资源

通过透明度、位置、缩放、旋转达到动画效果
重要参数
fromXxx toXxx属性,定义的是开始状态、结束状态
android:interpolator指的是动画的变化速度(匀速、正加速等)
可以写XML文件定义动画的时间、缩放或位移等变换

在需要加载使用时对象去访问
在Java代码中可以通过AnimatationUtils.loadAnimation(Context ctx,int resId)获得实际的Animation对象

image.startAnimation(anim)即可让图片加载动画效果

XML资源(解析)

XmlResourceParser getXml(int id) 获取XML文档,并使用XmlPullParser来解析该文档(XmlResourcesParser是XmlPullParser的子类)

InputStream openRawResource(int id)获取XML文档的输入流,可选择解析器来解析该XML资源。(Android内置Pull解析器,使用DOM,SAX或者其它解析器,需自行下载对应的jar包)

格式如下
获得解析器对象
XmlResourcesParser xrp=getResources().getXml(R.xml.names);
StringBuilder sb=new StringBuilder(“”);
根据标签节点类型判断(标签START_TAG tagName.equals(“name”)
while(xrp.getEventType!=XmlResourceParser.END_DOCUMENT){

根据节点事件和标签响应 xrp.next(); 继续解析

样式(Style)与主题(Theme)

由于经常出现多个相同格式的集合,方便继承和简化代码

name 样式的名称
parent 继承的父样式
包含item标签
通过@style/style1就可直接使用相同的样式参数

主题不作用于单个View组件,对Activity起作用
格式如下:
<style name="ATheme">
<item name="android:windowNoTitle"> true</item>

在Java代码中setTheme(R.style.ATheme);即可使用
若想在全部窗口使用这个主题,则在清单文件application节点 android:theme=@style/ATheme即可

5.0之后新增Material主题,百度查阅

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值