文章目录
1-res目录存放资源,不可以任意创建目录,否则不能读取。
2-res和assets目录都可以存放资源文件,它们的区别。
name | 获取方式 | 建立目录 | 压缩 |
---|---|---|---|
Res目录 | 获取res目录中的资源需要使用R类中的资源IDgetresource().getstring.(R.string.hello) | 不能任意命名目录,不能建立二级目录和多级目录 | 除了raw子目录,其他均会被编译为二进制 |
Assets目录 | 获取assets目录中的资源可以直接使用文件名getresource.getAssets.opem(filneme) | 可以建立为任意多级目录 | 不会被编译为二进制 |
3-raw与assets都存放资源文件,他们的区别。
name | 获取方式 | 目录 | 压缩 | 读取方式 |
---|---|---|---|---|
Res/raw目录 | res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename | 不可以有目录结构 | 打包后会原封不动的保存在apk包中,不会被编译成二进制 | InputStream is = getResources().openRawResource(R.id.filename); |
Assets目录 | assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类 | 可以有目录结构 | 同上 | getAssets.opem(filneme) |
4-drawble图像资源多版本:适配不同屏幕
name | density | 标准分辨率 | XX |
---|---|---|---|
drawble | 默认 | ||
drawable-xhdpi | 2 | 720*960 | |
drawble-hdpi | 1.5 | 480*640 | |
drawble-mdpi | 1 | 320*480 | |
drawable-ldpi | 0.75 | 240*320 |
5-资源目录命名规则优先级
语言>屏幕尺寸>屏幕方向>夜间模式>屏幕密度>平台版本
6-在string.xml字符串资源中是否可以有单引号"’",支持使用哪几个标签?
(1)可以有单引号,但不能将单引号直接加到字符串资源中,需要使用双引号"’,"将带单 引号的字符串资源括起来:<…>“this’s Mine”<…>。或者使用转义符\:<…>this’s Mine<…>
(2)支持以下三个标签:粗体斜体下划线
7-drawable中的图像资源有哪些?
name | 类别 | 根节点 | 子节点或示例 |
---|---|---|---|
图像状态资源 | 控制类 | < selector > | < item android:state_XXX=“true” android:drawable="@drawable/XX" / > |
图像级别资源 | 控制类 | < level-list > | < item android:drawable="@drawable/lamp_off" android:minLevel=“6” android:maxLevel=“10” /> |
淡入淡出资源 | 控制类 | < transition >标签中只能有两个< item >标签 | < item android:drawable="@drawable/lamp_off" / > < item android:drawable="@drawable/lamp_on" / > |
嵌入图像资源 | 控制类 | inset如果显示的图像要求小于装载图像的视图 | < inset xmlns:android=“http://schemas.android.com/apk/res/android” android:drawable="@drawable/background" android:insetTop=“50dp” android:insetLeft=“50dp” android:insetBottom=“50dp” android:insetRight=“50dp” /> |
剪切图像资源 | 显示类 | < clip > | < clip xmlns:android=“http://schemas.android.com/apk/res/android” android:drawable="@drawable/progress" android:clipOrientation=“horizontal” android:gravity=“left” /> |
外形资源 | 显示类 | < shape > | < shape xmlns:android=“http://schemas.android.com/apk/res/android"android:shape=“rectangle”> < !-- 定义渐变色(从左下角到右上角绘制渐变色) – > < gradient android:startColor=”#FFFF0000" android:endColor="#80FF00FF"android:angle=“45” /> < !-- 定义控件内容到边界的距离(到四条边界的距离都是7) --> < padding android:left=“7dp” android:top=“7dp"androidandroid:right=“7dp"android:bottom=“7dp” /> < !-- 定义边框线(边框线宽度是2,颜色为白色) --> < stroke android:width=“2dp” android:color=”#FFF” /> < !-- 定义圆角(圆角半径是8) --> < corners android:radius=“8dp” /> < /shape> |
8-color中颜色资源的不同形式
- #RGB——————#FBA
- #ARGB—————#0FBA
- #RRGGBB——----#FFBBAA
- #AARRGGBB------#00FFBBAA
9-dip和px的转换
(4.1.6)dip, dp, px, sp区别
px为像素,dip是设备独立像素,和屏幕密度无关
dip(value)=(int) (px(value)/1.5 + 0.5)
10-resources数组资源的获取
或者是
//示例代码
String[] planets = res.getStringArray(R.array.planets_array);