一、Android六大核心资源类型总结
在Android开发中,资源主要存放在res/目录下,通过将U川定义与代码逻辑分离,实现更好的维护性。
1、图片资源(Drawable/Mipmap):
-
Drawable:包含位图(PNG、JPG、WEBP)和XML定义的图形(如形状Shape、矢量图Vector)。
-
Mipmap:专门用于存放应用启动图标(Icon),系统会根据屏幕密度自动选择最佳分辨率。
-
另外:调用图片资源文件,有两种调用方式,一种是通过Java代码调用,另一种是在XML布局文件中的调用.
(1)通过Java代码调用图片资源文件
-
在Activity中可以通过getResources().getDrawable()方法调用(较为麻烦)
(2)在XML布局文件中调用图片资源文件
@mipmap/ic_launch //调用名称以mipmap开头的文件夹中的图片资源文件
@drawable/icon //调用名称以drawable开头的文件夹中的图片资源文件
2、布局资源(Layout):
-
存储在res/layout/目录下,是XML格式的文件.它定义了界面的结构、控件的排列方式以及UI元素的属性.
-
可通过Java代码来调用布局资源文件
在Activity中,找到onCreate()方法,在该方法中通过调用setContentView()方法来调用Activity对应地点布局资源文件,直接调用activity_main.xml文件
setContentView(R.layout.activity_main);
-
在XML布局文件中调用布局资源文件
在XML布局文件中可通过< include >标签调用布局资源文件,,例如XML布局文件中activity_main.xml文件
< include layout="@layout/activity_main/" >
3、主题与样式资源(Theme/style):
-
通常定义在res/values/themes.xml或styles.xml中
-
Style用于定义单个控件的属性集合(如按钮的字体、颜色);Theme则是应用于整个Activity或Application的全局样式。
4、字符串资源(String):
-
定义在res/values/strings.xml中。
-
用于存储应用中的所有文本文字。这样做便于实现多语言国际化(不同语言只需提供不同的strings.xml)。
5、颜色资源(Color):
-
定义在res/values/colors.xml中。
-
使用十六进制颜色代码(如#FF0000表示红色),方便在全项目内统一管理色调。
5、尺寸资源(Dimension):
-
定义在res/values/dimens.xml中。
-
用于定义控件的大小、间距(dp)或文字大小(sp),确保应用在不同分辨率的屏幕上具有一致的视觉比例。
二、四种常用布局资源
1、线性布局(LinearLayout):
这是最简单、最常用的布局。它将其中的子控件按照水平或垂直方向依次排列。
- 核心属性:Android:orientation。设为vertial时控件从上往下排,设为horizontal时从左往右排
- 权重(Weight):允许子控件按比例瓜分父容器的剩余空间。例如,可以用权重实现两个按钮各占屏幕宽度的50%。
2、相对布局(RelativeLayout):
它通过指定控件相对于父容器或兄弟控件的位置来进行对齐。
- 相对于父容器:如layout_centerInParent(居中)、layout_alignParentBottom(贴紧底部)。
- 相对于兄弟控件:如layout_below(在某个控件下方)、layout_toRight0f(在某个控件右侧)。
- 优点:能够灵活地摆放控件位置,减少布局嵌套层级,提升渲染效率。
3、帧布局(FrameLayout):
帧布局是最简单的布局容器,它像一叠洗好的扑克牌。
- 层叠特性:默认情况下,所有控件都堆叠在左上角。后定义的控件会覆盖在先定义上。
- 引力控制:通过android:layout_gravity可以控制控件在容器内的对齐方式(如居中、右上角等)。
- 场景:常用作Fragment的占位符,或者在图片上叠加一层文字/进度条。
4、表格布局(TableLayout):
表格布局以行和列的形式管理控件,类似于网页开发中的< table >。
- 行列结构:每一行通常由一个< TableRow >:标签表示,行中的控件就是列。
- 特殊功能:
-
- stretchColumns:设置某些列为"可拉伸",使其填满屏幕剩余宽度。
-
- shrinkColumns:设置某些列为"可收缩",防止内容溢出屏幕。
-
- collapseColumns:可以隐藏指定的列。
- 场景:适用于展示类似报表、设置菜单或对齐要求非常严格的录入表单。