资源管理

anim 补间动画
layout 布局资源
navigation 导航
values(colors,strings) 值
drawable 图片
font 字体
transition 转换的动画资源
menu 菜单
raw 文件资源
interpolator 拦截器

(一)drawable

res -> drawable -> New -> Image Asset(图片资源)

(1)shape

  1. gradient :设置渐变颜色
  • startColor 、 centerColor 、 endColor (设置渐变颜色的起止颜色)
  • type —— linear 线性渐变、radial 放射状渐变、 sweep 扫描式渐变 (设置渐变类型)
  • angle (设置渐变角度)
       0: 从左往右
       45: 从左上往右下
       90: 从上往下
       135: 从右上往左下
       180: 从右往左
       225: 从右下往左上
       270: 从下往上
       315: 从左下往右上
  1. corners 设置四个角(圆角)
  • radius
  • topLeftRadius 、 topRightRadius 、 bottomLeftRadius 、 bottomRightRadius :设置四个圆角的半径值
  1. size :设置形状大小尺寸
  • width、height:设置形状的宽高值
  1. stroke :设置边框
  • width
  • color
  • dashWidth
  • dashGap
  1. solid 填充色
  2. padding :设置填充 内间距
  • left、top、right、bottom
  1. innerRadiusRatio、thicknessRatio:设置内外半径比例
  2. shape:设置形状类型,如矩形、椭圆等

shape 例子

1
2
3
4
5
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> <!--强调是矩形-->
<corners android:radius="29dp"/> <!--设置全圆角-->
<solid android:color="@color/text_gray"/>
</shape>
1
2
3
4
5
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="15dp"
android:topRightRadius="15dp" /> <!--设置左上/右上圆角-->
<solid android:color="@color/alpha_blue"/> <!--纯色-->
</shape>

(2)selector

selector
注意使用选择器时只能使用<item android:drawable

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<!--selector 选择器 给系统使用-->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--当控件的enabled状态是false 显示color为灰色-->
<item android:drawable = "@drawable/shape_button_round_corner_gray" android:state_enabled="false"/>
<!--true 显示color为蓝色-->
<item android:drawable = "@drawable/shape_button_round_corner_blue" android:state_enabled="true"/>
</selector>

(3)其他

除了shape类型和selector类型之外,Android开发中的drawable资源还有layer-list类型和bitmap类型等。下面简要介绍了这些类型的功能作用:

  1. shape类型:
    shape类型用于创建简单的图形,如矩形、圆角矩形、圆形等。可以通过设置shape标签的属性来定义不同的形状、颜色、边框等样式。
  2. selector类型:
    selector类型用于创建状态选择器,可以根据控件的不同状态(如按下、选中、正常等)显示不同的图像或颜色。selector文件中包含了多个item标签,每个item标签定义了一个状态和对应的图像或颜色。
  3. layer-list类型:
    layer-list类型用于创建图层列表,可以将多个图形或图片叠加在一起,形成一个复合的图像。可以通过item标签来定义每个图层的位置、大小、颜色等属性。
  4. bitmap类型:
    bitmap类型用于引用位图图像资源,通常用于显示图片。可以通过src属性指定位图资源的路径。
    这些drawable资源类型在Android开发中可以用来定义控件的背景、前景、边框等样式,以及根据不同状态显示不同的图像或颜色。通过合理使用这些资源类型,可以实现丰富多彩的界面效果。

在Android Studio中的Drawable文件夹下可以存放以下类型的资源:

  1. 图片资源(.png, .jpg, .gif等):可以存放应用中使用的各种图片资源,例如应用图标、背景图片、按钮图标等。
  2. 矢量图资源(.xml):可以存放矢量图形资源,使用 XML 描述的矢量图可以实现在不同分辨率下的自适应缩放。
  3. 图层列表资源(layer-list):可以使用 layer-list 标签定义的XML文件,用于创建多层次的图形效果。
  4. 形状资源(shape):可以使用 shape 标签定义的 XML 文件,用于创建各种形状的 Drawable 资源,例如矩形、圆角矩形、圆形等。
  5. 旋转动画资源(rotate):可以使用 rotate 标签定义的 XML 文件,用于创建旋转动画效果。
  6. 缩放动画资源(scale):可以使用 scale 标签定义的XML文件,用于创建缩放动画效果。
  7. 渐变资源(gradient):可 gradient 以使用 gradient 标签定义的 XML 文件,用于创建渐变效果。
  8. 透明度资源(alpha):可以使用 alpha 标签定义的 XML 文件,用于创建透明度动画效果。
    总的来说, Drawable 文件夹下可以存放各种静态和动态的视觉效果资源,用于在应用中实现各种UI设计需求。

(二)values

(1)colors

默认值:
作为一个参数而且有很多种情况,可以指定默认值,不传就是默认的
统一管理资源(values color):
①文字的大小颜色粗细相同,可以采用同一套样式,统⼀管理所有的颜⾊资源
res → values → colors → 添加颜⾊资源
@color/text_white //调用

1
2
3
4
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
</resources>

(2)strings

②统⼀管理字符串资源
res → values → strings
@string/app_name //调用

1
2
3
4
<resources>
<string name="app_name">LoginAnnie</string>
<string name="welcome_title">欢迎回来</string>
</resources>

(3)styles

③统⼀管理某个控件的样式 控件在多个地⽅出现 并且⻓得差不多 [style样式]
定义样式 颜色 大小 粗细
style = "@style/TextTitle" //调用

textStyle 是设置文本字体样式,
Android 提供了三个样式

  1. normal 正常字体
  2. bold 粗体
  3. italic 斜体
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<resources>
<!--主标题-->
<style name="TextTitle">
<item name="android:textSize">36sp</item> <!--字体大小-->
<item name="android:textColor">@color/text_white</item>
<item name="android:textStyle">bold</item> <!--设置文字字体-->
</style>

<!--副标题-->
<style name="SubTextTitle">
<item name="android:textSize">10sp</item>
<item name="android:textColor">@color/text_gray</item>
</style>

<!--提示用户操作的文本样式-->
<style name="AlertTextTitle">
<item name="android:textSize">18sp</item>
<item name="android:textColor">@color/light_blue</item>
</style>
</resources>

(4)attrs

自定义属性

format:
string 字符串
color 颜色 @color/xx #ffffff
boolean 布尔值
dimension 具体尺寸 20dp(icon_sizs dp值)
enum 定义枚举 这个属性可能有多种可能
float 浮点数 20.0f
integer 整数
reference 引用 @color/ @drawable @string/
fraction 比例 10%
flags 标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<resources>
<declare-styleable name="UserInputView">
<!--颜色-->
<attr name="uniColor" format="reference|color"/>
<!--标题-->
<attr name="title" format="string|reference"/>
<!--默认提示内容-->
<attr name="placeholder" format="string|reference"/>

<!--错误时提示内容-->
<attr name="error_title" format="string|reference"/>

<!--设置类型: 密码输入 or 正常输入-->
<attr name="input_type" format="integer">
<enum name="password" value="1"/>
<enum name="normal" value="2"/>
</attr>

</declare-styleable>
</resources>

(5)thems 屏幕显示设置

去掉ActionBar导航栏和状态栏
res → values →themes → NoActionBar

设置全屏显示 windowFullscreen

1
2
3
4
5
6
7
8
9
10
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.LoginAnnie" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:windowFullscreen">true</item>
</style>

<style name="Theme.LoginAnnie" parent="Base.Theme.LoginAnnie" />
</resources>


windowFullscreen 和 windowTranslucentStatus 是两个不同的属性,它们分别用于控制Activity的全屏显示和状态栏的透明度。它们的区别如下:

  1. windowFullscreen:设置为true时,Activity会全屏显示,包括状态栏和导航栏的区域也会被占据。这样可以让应用的界面完全覆盖整个屏幕,实现全屏显示的效果。

  2. windowTranslucentStatus:设置为true时,状态栏会变为半透明状态,让应用的内容可以延伸到状态栏的下方,实现沉浸式的界面效果。这个属性主要用于控制状态栏的透明度,而不是控制整个Activity的全屏显示。

综上所述,windowFullscreen用于控制Activity是否全屏显示,而windowTranslucentStatus用于控制状态栏的透明度。根据应用的需求,可以根据情况选择使用这两个属性,或者同时使用它们来实现更加灵活的界面效果。

(6) dimens

统一管理尺寸大小
使用:android:layout width=”@dimen/delete_circle_size”

1
2
3
4
<resources>
<dimen name="delete_circle_radius">10dp</dimen>
<dimen name="delete_circle_size">10dp</dimen>
</resources>

(三)font

res -> font

MAC字体天下
选择字体下载下来,将字体名称改为小写,将字体拷贝到font中

自定义属性

1
2
3
4
5
6
7
8
9
<!-- 自定义视图显示文本内容-->
<declare-styleable name="CustomTextView">
<attr name="text" format="stringreference"/>
<attr name="fontSize" format="dimension/reference"/>
<attr name='textFont" format="integer'>
<enum name="normal" value="1"/>
<enum name="zitiaozichang" value="2"/>
</attr>
</declare-styleable>

导入字体
自己的字体使用 : xmI textFont=”@font/xxx.ttf代码中 TypeFace.Default

(四)raw

动画资源:lottiefiles.com

lottie动画

  1. 导入implementation ‘com.airbnb.android:lottie:6.1.0’资源(使用 LottieAnimationView 控件必须导入该资源)
  2. 创建资源文件夹res —->raw (音频视频 test文件 json文件)—-> file下载导入动画资源
  3. 在 fragment 中添加代码 LottieAnimationView 控件

app:lottie_rawRes=”@raw/delivery” //显示哪个资源
app:lottie_autoPlay=”true” //是否自动播放
app:lottie_loop=”@raw/delivery” //是否循环播放

//Lottie File
implementation'com.airbnb.android:lottie:6.1.0'

图片资源:
image.baidu.com


参考:https://www.jianshu.com/p/f424779bd40f

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2023-2025 Annie
  • Visitors: | Views:

嘿嘿 请我吃小蛋糕吧~

支付宝
微信