自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 【Android】View动画—XML动画、帧动画

1. XML 动画的基本结构每个动画文件都是一个 XML 文件,以<set><alpha><scale><rotate>之一作为根元素。根标签:可使用<set>组合多个动画,或者单独使用<alpha><scale><rotate>。属性:设置动画的起始值、目标值、时间等。2. 透明度动画(AlphaAnimation)??????????????效果:View从完全透明到完全显示。代码加载动画3. 缩放动画(ScaleAnimation)fromXScaletoXScale:X 轴缩放比例。

2025-04-01 21:48:14 1066

原创 【Android】行为型设计模式—策略模式、模版方法模式、观察者模式

策略模式是一种行为设计模式,它定义了一系列算法,并将每一个算法封装起来,让它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;important;

2024-12-15 19:41:47 832

原创 【Android】ARouter源码解析

本篇文章主要讲解了 ARouter 框架的源码分析,包括其初始化过程、核心方法等。

2024-12-08 22:02:40 942

原创 【Android】创建型设计模式—单例模式、工厂模式、建造者模式

懒汉式适用于需要延迟实例化的场景,但需要注意线程安全问题。双重检查锁定懒汉式是懒汉式的改进,能够保证线程安全并提高性能。饿汉式不需要担心线程安全问题,但存在内存浪费的风险。静态内部类式是较为推荐的懒加载方式,线程安全且高效。枚举式是最简洁、最安全的实现方式,JVM保证线程安全和防止反射攻击,是最推荐的实现方式。

2024-12-08 10:15:29 1226

原创 【Android】结构型设计模式—代理模式、装饰模式、外观模式、享元模式

是一种结构型设计模式,它通过引入一个代理对象来控制对另一个对象的访问。代理对象通常充当实际对象的“替身”,可以在实际对象操作之前、之后进行一些额外的处理。fill:#333;stroke:1;fill:none;important;important;important;important;important;important;important;important;important;important;important;important;important;important;

2024-12-08 10:14:28 1428

原创 【Android】View工作原理

View是Android在视觉上的呈现在界面上Android提供了一套GUI库,里面有很多控件,但是很多时候我们并不满足于系统提供的控件,因为这样就意味这应用界面的同类化比较严重。那么怎么才能做出与众不同的效果呢?答案是自定义View,也可以叫自定义控件,通过自定义View我们可以实现各种五花八门的效果。除了View的三大流程以外,View常见的回调方法也是需要熟练掌握的,比如构造方法、onAttach、onViVisibilityChanged、onDetach等。

2024-12-01 17:20:37 1203

原创 【Android】RecyclerView回收复用机制

说明如果所有缓存机制都未找到匹配的ViewHolder,最终会调用来创建新的实例。这是性能代价最高的一步。我们通过点击就可以找到我们每次写Adapter都用重写的方法了。在后面的代码中,我们依次点击:就可以找到我们每次写Adapter都用重写的方法了。已经到底啦!!

2024-11-24 20:23:37 1201

原创 【Android】IPC机制—Serializable、Parcelable、Binder用法

Serializable是Java所提供的一个序列化接口,它是一个空接口,为对象提供标准的序列化和反序列化操作。serialVersionUID也并不是必须的,不声明serialVersionUID也同样可以实现序列化,但是会对反序列化过程产生影响。//序列化过程try {//反序列化过程try {in.close();

2024-11-17 21:45:02 963

原创 【Android】View—基础知识,滑动,弹性滑动

在 Android 中,View是用户界面(UI)中的基本组件,用于绘制图形和处理用户交互。所有的 UI 组件(如按钮、文本框、图片等)都是View的子类。可以说,View是构建 Android 应用界面的基础。View是一种界面层的控件的一种抽象,它代表了一个控件。除了View还有ViewGroup,里面包含了许多个控件,即一组View。在Android设计中,ViewGroup也继承了View,也就意味着View本身可以是单个控件也可以是由多个控件组成的一组控件。

2024-11-10 19:52:26 1094

原创 【Android】初识路由框架及ARouter基本使用方法

ARouter 是一个强大的 Android 路由框架,用于在 Android 应用中实现模块间的页面跳转、服务调用和依赖注入等功能。它主要用于简化和规范应用模块化开发中的页面导航,并提供了灵活的跳转配置和参数传递功能。页面跳转:ARouter 可以在模块化的应用架构中实现模块之间的页面跳转,而不需要直接引用其他模块,解耦页面间的依赖关系。服务管理:支持跨模块的服务调用,例如从一个模块中获取另一个模块提供的功能。依赖注入:支持在模块之间实现依赖注入,提供更灵活的服务调用方式。

2024-11-02 17:34:39 1853

原创 【Android】ViewPager的MVP架构搭建

ViewPager是 Android 中的一种滑动组件,允许用户左右滑动页面,提供了类似翻页的效果,通常用于实现多页面视图切换。它能够支持手势滑动,也可以通过编程来切换页面,使得内容展示更为流畅、直观。

2024-10-27 19:39:52 825

原创 【Android】MVP架构

MVP(Model-View-Presenter)是一种常见的软件架构模式,尤其在Android应用开发中被广泛使用。它将应用程序分为三层:Model、View 和 Presenter,以实现职责分离,提高代码的可维护性和可测试性。

2024-10-20 12:29:13 2622

原创 【Android】布局优化—include,merge,ViewStub的使用方法

在Android应用开发中,布局是用户界面的基础。一个高效的布局不仅能提升用户体验,还能显著改善应用的性能。随着应用功能的复杂性增加,布局的优化变得尤为重要。优化布局能够减少渲染时间,提高响应速度,从而让用户获得更流畅的体验。

2024-09-27 20:56:32 1393

原创 【Android】模糊搜索与数据处理

本篇博客主要以根据输入内容动态获取城市为例进行讲解。

2024-09-22 21:54:20 1561

原创 【Android】ToolBar,滑动菜单,悬浮按钮和可交互提示等的使用方法

Toolbar的强大之处在于,它不仅继承了 ActionBar的所有功能,而且灵活性很高,可以配合其他控件来完成一些Material Design的效果。任何一个新建的项目,默认都是会显示ActionBar。

2024-09-17 11:39:13 1923

原创 【Android】NestedScrollView的简单用法与滚动冲突、滑动冲突

是 Android Jetpack 中的组件,用于容纳能够垂直滚动的视图。当页面布局的内容超过屏幕高度时,可以通过滚动展示全部内容。同时,在滚动的过程中与子视图可以进行事件协作。

2024-09-06 22:59:52 3751

原创 【Android】使用网络技术——WebView的用法、http协议、OKHttp、解析XML、JSON格式数据笔记整理

新建一个WebView项目

2024-08-07 10:17:25 1364 1

原创 【Android】跨程序共享数据——内容提供器

内容提供器(Content Provider)是Android中的一个组件,用于在应用程序之间共享数据。它提供了一种标准机制,使得一个应用可以暴露其数据,并允许其他应用访问这些数据。内容提供器在访问和存储数据时提供了安全性和一致性,通常用于访问结构化的数据集。

2024-08-03 14:33:09 465

原创 【JAVA设计模式】适配器模式——类适配器模式详解与案例分析

适配器模式通过引入一个适配器类,将一个类的接口转换成客户端所期望的另一种接口。适配器模式的核心在于“适配”,它允许原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式是一种强大的设计模式,能够有效解决接口不兼容的问题,使得不同接口的类能够协同工作。通过合理使用适配器模式,可以提高系统的灵活性和复用性,但也需要注意其可能带来的复杂性和性能影响。希望本文对你理解适配器模式有所帮助。如果你有任何问题或建议,欢迎在评论区留言!12.设计模式-结构型模式-类适配器模式案例实现_哔哩哔哩_bilibili。

2024-08-02 11:07:54 3253

原创 【Android】手机多媒体的使用—通知、摄像头、播放音乐视频

方法定义功能说明设置通知时间,默认为系统发出通知的时间,一般不设置。设置自定义音乐。设置通知栏下拉后的大图标。设置点击通知后跳转的 Activity,即延迟 Intent 实现。设置点击通知后是否消失,true为消失。设置通知的样式,如:大文本样式、大视图样式。设置通知优先级,用于 Android 8.0 以下版本。设置通知的 LED 灯、音乐、震动等默认设置。

2024-08-01 16:27:08 623

原创 【Android】数据存储——数据持久化

【Android】数据存储——数据持久化简介Android系统中主要提供了3种方式用于简单地实现数据持久化功能——文件存储、SharedPreferences存储、数据库存储文件存储Context类中提供了一个openFIleOutPut()方法,用于将数据存储到指定文件中。包含两个参数,第一个参数是文件名,第二个参数是文件的操作模式MODE_PRIVATE:默认的操作模式,写入的内容会覆盖原文件内容MODE_APPEND:表示如果文件已经存爱,就往文件里追加内容,不存在就创建文件下面的

2024-07-26 12:02:31 970 1

原创 【Android】碎片—动态添加、创建Fragment生命周期、通信

在Fragment中定义一个接口,Activity实现该接口来接收数据。

2024-07-25 15:10:04 1451

原创 【Android】广播机制

在Android中,广播(Broadcast)是一种消息,任何应用程序都可以发送广播消息,任何应用程序也都可以接收广播消息。广播通常用于通知应用程序某些事件的发生,比如系统启动、电量低、网络状态改变等。Broadcast Receiver(广播接收器):用于接收广播消息并响应这些消息的组件。Intent(意图):用于传递广播消息的数据结构。标准广播(Normal Broadcast)是完全异步的,所有接收器几乎同时接收广播,并且接收顺序是不确定的。

2024-07-24 21:35:56 1406

原创 【Android】性能实践—编码优化与布局优化学习笔记

但是如果我们本来的界面中还有别的东西,我们在引入header后所有的东西都有可能被覆盖,出现这个问题是原因是因为header的最外层布局是一个宽高都是match_parent的LinearLayout,我们可以将LinearLayout的layout_height属性修改成wrap_content就可以了,但是这种操作会影响header的界面,如何你只希望让activity_main.xml这一个界面受影响的话,那么可以使用覆写属性的方式。它的主要目的是减少布局层级,使布局文件更加高效。

2024-07-23 16:31:41 1439 1

原创 【Android】用 ViewBinding 让你的代码告别混乱

当我们刚接触Android开发的时候,最常写的莫过于使用去在代码中找到并操作布局文件中的视图。然而,随着应用程序复杂性的增加,频繁使用可能导致代码冗长且容易出错。所以,我们的就登场了。通过使用 ViewBinding,我们可以显著简化视图查找的代码,使代码更加简洁和安全。无论是新项目还是旧项目的重构,ViewBinding 都是一个值得尝试的特性。告别,让你的 Android 开发体验更加顺畅和高效。希望本文对大家有所帮助,如果存在问题请麻烦指正!!已经到底啦!!

2024-07-20 10:37:48 1048

原创 【Android】基础—基本布局

【Android】基础—基本布局基本布局线性布局垂直方向:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="

2024-07-18 20:27:29 1040

原创 【Android】基础—常用控件、Intent

每个Intent只能对应一个action,但是可以指定多个category。在创建的Activity中先重写onCreateOptionsMenu。可以在MainActivity中为Button点击事件注册一个监听器。在SecondActivity中进行点击终止并传递。在res里添加menu,在menu中进行内容编写。在SecondActivity中进行接收。在FirstActivity中进行传递。在创建的Activity里进行重写。可以通过点击来让进度条显示或者消失。在layout里进行配置。

2024-07-17 15:22:19 876

原创 【Java】图的初识

图是计算机科学中非常重要的数据结构,理解图的基本概念和Java中的实现方法对于解决很多复杂问题都非常有帮助。通过本篇博客的介绍,希望大家对图有一个初步的了解,并能够在实际编程中应用图的相关知识。深度优先搜索是一种遍历图的方法,从一个起始顶点出发,沿着一条路径尽可能深入,然后回溯继续搜索未访问的顶点。邻接矩阵是一种二维数组,用于表示顶点之间的连接关系。邻接表是一种数组加链表的结构,每个顶点对应一个链表,链表中存储与该顶点相邻的顶点。广度优先搜索是一种遍历图的方法,从一个起始顶点出发,逐层访问相邻的顶点。

2024-06-16 17:20:44 1362

原创 重生之我要精通JAVA--第八周笔记

任务拒绝策略说明默认策略:丢弃任务并抛出RejectedExecutionException异常丢弃任务,但是不抛出异常 这是不推荐的做法抛弃队列中等待最久的任务 然后把当前任务加入队列中调用任务的run()方法绕过线程池直接执行参数说明要求核心线程数量不能小于0最大线程数量不能小于0,最大数量 >= 核心线程数量空闲线程最大存活时间不能小于0unit时间单位用TimeUnit指定workQueue任务队列不能为null创建线程工厂不能为nullhandler。

2024-06-09 17:15:57 1323 1

原创 【数据结构】平衡二叉树左旋右旋与红黑树

平衡二叉树是二叉搜索树的一种特殊形式。而平衡二叉树(Balanced Binary Tree)在满足了二叉搜索树的所有性质的基础上,还额外保证了树的高度尽可能小,即任意节点的左右子树高度差不超过1。

2024-06-07 22:45:20 1893

原创 重生之我要精通JAVA--第七周笔记

Lock是接口不能直接实例化,这里采用它的实现类ReentrantLock来实例化。为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock。创建FutureTask的对象(作用管理多线程运行的结果)创建MyCa1lable的对象)表示多线程要执行的任务)特点2:里面的代码全部执行完毕,线程出来,锁自动打开。并行:在同一时刻,有多个指令在多个CPU上同时执行。重写ca11(是有返回值的,表示多线程运行的结果)特点1:锁默认打开,有一个线程进去了,锁自动关闭。

2024-06-02 17:51:43 1085

原创 重生之我要精通JAVA--第六周笔记

路径1:“a.txt”路径2:“abc\\a.txt”路径1:“c:\\a.txt”路径2:“c:\\abc\\a.txt”

2024-05-26 18:31:17 1192

原创 贪心算法--区间调度问题

在本文中,我们深入探讨了贪心算法的原理、应用场景以及实现方法。贪心算法作为一种简单而强大的算法设计技巧,已经在许多领域得到了广泛的应用,如图论、任务调度、最优化问题等。通过每一步的局部最优选择,贪心算法能够快速地找到问题的最优解,具有较高的执行效率。在实际应用中,贪心算法的灵活运用能够为我们带来更多的便利和效益。通过深入理解贪心算法的原理和特点,我们可以更好地利用这一算法工具,为解决实际问题提供有效的解决方案。希望本文能够帮助读者更好地理解贪心算法,并在实际应用中取得更好的效果。

2024-05-24 21:55:03 1805

原创 重生之我要精通JAVA--第五周笔记

定义异常类写继承关系空参构造带参构造。

2024-05-19 17:24:09 864

原创 重生之我要精通JAVA--第四周笔记

接口用关键字interface来定义public interface 接口名 {}接口不能实例化接口和类之间是实现关系,通过implements关键字表示public class 类名 implements 接口名 {}接口的子类(实现类)要么重写接口中所有的抽象方法要么是抽象类注意1:接口和类的实现关系,可以单实现,也可以多实现:public class 类名 implements 接口名1,接口名2{}注意2。

2024-05-12 18:08:17 1149

原创 重生之我要精通JAVA--第三周笔记

this:理解为一个变量,表示当前方法调用者的地址;super:代表父类存储空间关键字访问成员变量访问成员方法访问构造方法thisthis.成员变量访问本类成员变量this.成员方法(…)访问本类成员方法this(…)访问本类构造方法supersuper.成员变量访问父类成员变量super.成员方法(…)访问父类成员方法super(…)访问父类构造方法抽象方法:publicabstract返回值类型 方法名(参数列表)抽象类:publicabstract。

2024-05-05 17:58:03 1060 2

原创 算法数据结构--单调栈

单调栈是一种特殊的栈数据结构,其特点在于栈内的元素保持单调性。单调栈通常分为单调递增栈和单调递减栈两种类型。总的来说,单调栈是一种高效、简洁且灵活的数据结构。单调栈的空间复杂度通常很低,因为它只需要存储输入序列中的一部分元素,而不需要额外的空间。通常情况下,单调栈的时间复杂度为 O(n),其中 n 为输入序列的长度。这是因为在大多数情况下,每个元素最多进栈一次、出栈一次,所以整个过程的时间复杂度是线性的。所以单调栈在解决数组或序列相关问题时具有很好的效果。已经到底啦!!

2024-05-03 21:42:33 1034 1

原创 重生之我要精通JAVA--第二周笔记

public class 类名 {1、成员变量(代表属性,一般是名词)2、成员方法(代表行为,一般是动词)3、构造器4、代码块5、内部类用来描述一类事物的类,专业叫做:Javabean类。在Javabean类中,是不写main方法的。在之前编写的main方法的类,叫做测试类。我们可以在测试类中创建javabean类的对象并进行赋值调用。类名首字母建议大写,需要见名知意,驼峰模式。

2024-04-28 18:03:19 896 1

原创 重生之我要精通JAVA--第一周笔记

数据类型 变量名 = 数据值;String为字符串类型Java帮我们写好了一个类叫Scanner,这个类可以接收键盘输入的数字。​ project(项目)​ module(模块)​ package(包)​ class(类)格式一:数据类型 [ ] 数组名格式二:数据类型 数组名[ ]

2024-04-21 18:13:23 1171

原创 大一下考核题解

因为我们直接在原数组中进行修改会无法判断数组中的0是原题还是修改之后的,所以本题的最直接的思路就是我们直接重新创建一个二维数组进行标记原数组为0的位置,然后重新遍历一遍新创建的数组,当遇到之前标记的位置,我们就把数组对应的行和列全部设置为0,就可以实现本题了。指针负责遍历完成所有的字符,遇到符合题意的就令s[l++]=s[r++],反之直接r++就可以了。初始化第0天一种情况是买票,为-prices[0],其他情况为没买,初始化为0;f[i] [2]: 手上不持有股票,并且不在冷冻期中的累计最大收益。

2024-04-20 21:28:16 851

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除