![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android基础
文章平均质量分 66
阿华-vitor
不断超越自我,快乐生活!
展开
-
自定义控件视图篇(一)测量与布局
下面是一个简单的自定义视图类,实现了测量和布局的基本逻辑:Java25 }69 }1013 }1417 // 计算理想宽度和高度// 你的宽度计算逻辑// 你的高度计算逻辑2021 // 获取宽度和高度的测量模式242728 // 根据测量模式和理想尺寸计算最终尺寸3136 }3742 }4345 }4649 // 布局子视图i++) {52 // 计算子视图的位置// 子视图左边界// 子视图上边界// 子视图右边界。原创 2024-07-08 22:34:49 · 258 阅读 · 0 评论 -
自定义控件三部曲之绘图篇(六)Paint之函数大汇总、ColorMatrix与滤镜效果、setColorFilter
在自定义控件的绘图篇中,Paint类是核心的组成部分之一,它控制了在Canvas上绘制的内容的各种属性,包括颜色、风格、抗锯齿、透明度等等。下面将详细介绍Paint的主要功能以及如何使用和来实现滤镜效果。原创 2024-07-08 22:28:08 · 406 阅读 · 0 评论 -
自定义控件三部曲之绘图篇(五)Path之贝赛尔曲线和手势轨迹、水波纹效果
使用Path类和Canvas,你可以实现从简单的贝塞尔曲线到复杂的手势轨迹绘制和水波纹效果等各种图形和动画。这些技巧对于开发具有丰富视觉效果的应用程序非常有帮助。通过实践和不断尝试,你将能够创作出更多创意十足的自定义控件。原创 2024-07-07 15:11:15 · 279 阅读 · 0 评论 -
自定义控件之绘图篇(四)canvas变换与操作
现在,让我们创建一个简单的自定义控件,展示如何在一个View中使用上述的Canvas变换和操作。12 }1316 }172122 // 平移2829 // 缩放3637 // 旋转4445 // 剪切5253 // 路径绘制64 }65}在这个自定义控件中,我们使用了Canvas的各种变换和操作来绘制不同效果的图形,展示了。原创 2024-07-07 15:07:20 · 309 阅读 · 0 评论 -
自定义控件之绘图篇(三)区域(Range)
我们将创建一个自定义View,该View能够显示一个水平的范围指示器,其中包含一个或两个可拖动的手柄,用于设定范围的最小值和最大值。首先,定义一个名为的自定义View:Java291619 }2023 }2427 init();28 }2931 // 初始化画笔353940 // 设置默认值454748 // 更新手柄位置50 }5155 // 当View尺寸改变时,重新计算Track的RectF57 }原创 2024-07-06 20:46:53 · 340 阅读 · 0 评论 -
自定义控件之绘图篇(二)路径及文字
我们先从一个简单的自定义View开始:Java47 init();13 }142022 }2328 }2937 }38}在这个例子中,我们定义了一个三角形,通过moveTo移动到起始点,然后用lineTo绘制线段,最后用close闭合路径。我们将上面的例子稍作修改,添加一些文字:Java58 init();原创 2024-07-06 20:42:57 · 318 阅读 · 0 评论 -
自定义控件绘图篇(一)基本几何图形绘制
首先,创建一个自定义View类,继承自ViewJava791114 init();25 }2631 }3236 // 在这里进行绘图操作37 }38}原创 2024-07-05 20:56:44 · 304 阅读 · 0 评论 -
自定义控件动画篇(九)实现ListView Item进入动画
创建一个ViewHolder类,用于存储ListView Item中每个视图的引用。这有助于提高性能,避免在getView()方法中重复查找视图。Java4 // 可能还有其他视图5}原创 2024-07-05 20:53:24 · 231 阅读 · 0 评论 -
自定义控件动画篇(八)animateLayoutChanges与LayoutTransition的使用
为了使用自定义动画,你需要创建实现Animator接口的类。例如,一个简单的淡入动画可以这样实现:Java// 开始时透明// 动画到完全不透明6 }7}类似地,你可以为其他动画类型创建相应的实现类。通过上述方法,你可以利用和来增强用户界面的视觉效果,使布局变化更加平滑和吸引人。原创 2024-07-04 22:20:42 · 532 阅读 · 1 评论 -
自定义控件动画篇(七)layoutAnimation与gridLayoutAnimation的使用
在Android中,和是用来给布局内的子视图添加动画效果的。它们允许你对整个布局的显示过程进行动画处理,而不是单个视图。原创 2024-07-04 22:17:10 · 809 阅读 · 1 评论 -
自定义控件之动画篇(六)——联合动画的代码及xml实现
在Android中,联合动画(即组合多种类型的动画)可以通过编写Java/Kotlin代码或XML资源文件来实现。这里我们将分别展示如何通过这两种方式来实现一个简单的自定义控件动画,该动画将包含平移和缩放效果。原创 2024-07-03 23:36:43 · 634 阅读 · 0 评论 -
自定义控件动画篇(五)——PropertyValuesHolder与Keyframe
在Android中,和Keyframe是用来创建复杂的属性动画的两个关键类。它们通常与结合使用,允许你对动画的关键帧进行精确控制,从而实现更复杂的动画效果。下面详细介绍如何使用这两个类来创建自定义控件动画。原创 2024-07-03 23:32:04 · 380 阅读 · 0 评论 -
自定义控件动画篇(四)ObjectAnimator的使用
如果需要对自定义属性进行动画处理,可以通过实现Property类来自定义属性访问器,并将其传递给。19}2021// 在动画中使用自定义属性。原创 2024-07-02 23:02:39 · 383 阅读 · 0 评论 -
自定义控件动画篇(三)ValueAnimator的使用
如果你需要处理非基本类型(如自定义对象)的动画,可以使用ofObject并提供一个自定义的。Java4 // 自定义计算逻辑6 }原创 2024-07-02 22:59:13 · 457 阅读 · 0 评论 -
自定义控件之动画篇(二)——Interpolator插值器
Interpolator类位于包中,它的作用是根据输入的时间(通常是动画进度的百分比),计算出输出的值,这个输出值一般代表了动画在该时间点的完成度。不同的Interpolator会有不同的输出曲线,从而影响动画播放时的视觉效果。如果内置的Interpolator不能满足需求,还可以自定义Interpolator。通常,你需要继承类并重写其方法,该方法接收0到1之间的输入值,并返回对应的变换后的值,也介于0到1之间。原创 2024-07-01 23:21:44 · 178 阅读 · 0 评论 -
Android自定义控件动画篇(一)alpha、scale、translate、rotate、set的xml属性及用法
Xml。原创 2024-07-01 23:16:38 · 321 阅读 · 0 评论 -
Navigation的基本使用及其原理
通过Navigation组件,Fragment之间的跳转不再需要直接依赖具体的Fragment类,而是通过导航图中的目的地ID或者action进行跳转,实现了Fragment之间的解耦。总的来说,Navigation组件通过提供一套完整的导航解决方案,简化了Android应用中的屏幕跳转和参数传递过程,提高了开发效率和代码质量。:Navigation组件提供了方便的参数传递机制,可以在跳转时传递参数给目标Fragment,并在目标Fragment中接收和处理这些参数。方法来导航到不同的目的地。原创 2024-06-13 22:37:33 · 563 阅读 · 0 评论 -
Page的基本使用及其原理
创建一个数据源类,该类需要继承自或,具体取决于你的分页策略。例如,使用@Override// 实现初始数据加载逻辑@Override// 实现向上翻页逻辑(如果需要)@Override// 实现向下翻页逻辑。原创 2024-06-13 22:34:21 · 721 阅读 · 0 评论 -
Sqlite数据库基本使用
Android SQLite 数据库是一个轻量级的关系型数据库,它非常适合在移动设备上存储结构化数据。下面将详细介绍如何在 Android 应用中使用 SQLite 数据库进行数据存储,包括创建数据库、升级数据库、添加、更新、删除、查询数据以及使用事务的 Java 实现。原创 2024-06-12 22:51:37 · 526 阅读 · 0 评论 -
ViewModel、Lifecycles、LiveData基本使用
以下是使用Java实现ViewModel、Lifecycles和LiveData的基本用法,以及它们的原理简述。原创 2024-06-12 22:43:08 · 866 阅读 · 1 评论 -
WorkManager的基本用法
创建一个继承自。原创 2024-06-11 21:14:21 · 220 阅读 · 0 评论 -
Room数据库使用
创建一个Java类来表示数据库中的表。使用@Entity注解来标记这个类是一个实体类,对应数据库中的一张表。@Entity。原创 2024-06-11 21:09:39 · 427 阅读 · 0 评论 -
json数据解析
当涉及到JSON数据解析时,Java中有多种库和方法可供选择。其中,JSONObject(通常指的是org.json库中的类)和Gson是两个常用的库。下面我将详细解释这两种方式的原理、优点和缺点。原创 2024-06-10 17:50:47 · 461 阅读 · 0 评论 -
xml数据解析
Pull Parser允许应用程序代码从XML数据中“拉取”事件,而不是像SAX那样通过事件处理程序被“推送”。应用程序代码可以决定何时拉取下一个事件,如开始元素、结束元素或文本内容。SAX Parser是一个基于事件的解析器,它读取XML文档并触发一系列事件,如开始元素、结束元素和字符数据。应用程序需要实现一个ContentHandler接口来处理这些事件。导入,并且你需要处理。原创 2024-06-10 17:45:02 · 722 阅读 · 0 评论 -
SharedPreferences存储使用及其原理
是 Android 中用于存储少量简单数据类型(如字符串、整数、布尔值等)的一种轻量级存储方式。它主要用于存储应用程序的偏好设置,如用户配置、高分数等。下面我将详细解释的使用、原理以及如何进行代码封装实现。原创 2024-06-04 22:55:35 · 656 阅读 · 0 评论 -
sqlite数据库存储
Android中的SQLite是一个轻量级的数据库管理系统,它内置在Android系统中,允许开发者在应用程序中存储和管理结构化数据。下面我将详细解释如何在Android中使用SQLite进行数据库操作,包括创建数据库、升级数据库、添加数据、更新数据、删除数据、查询数据和事务的使用。原创 2024-06-04 22:50:28 · 405 阅读 · 0 评论 -
Android多媒体之音、视频播放
在Android中播放多媒体文件,包括音频和视频,涉及到几个核心组件和概念。以下将详细解释这些概念,并提供相应的代码实现。原创 2024-06-03 21:38:56 · 244 阅读 · 1 评论 -
Android多媒体之调用摄像头和相册
调用摄像头拍照和从相册中选择图片在Android中都是常见的功能。它们都需要申请相应的权限,并通过设置Intent来启动相应的Activity。对于拍照功能,还需要考虑图片的存储和Uri的获取;对于从相册选择图片,主要是处理用户选择的图片Uri。在实际开发中,可以结合使用这些功能,为用户提供更丰富的图片获取方式。要在Android应用中实现从相册中选择图片的功能,你需要使用。原创 2024-06-03 21:33:21 · 338 阅读 · 1 评论 -
Android多媒体之通知的使用
以上是关于Android通知使用的详细介绍,包括创建通知渠道、通知的基本用法和进阶技巧。这些功能可以帮助开发者更好地管理应用的通知,提高用户体验。从Android 8.0(API级别26)开始,所有通知都必须分配到一个渠道。这允许用户为不同的通知类型设置不同的优先级和可见性。这个方法需要两个参数:一个唯一的ID(用于更新或删除通知)和。这个类提供了各种设置通知的方法,如设置标题、内容、图标等。方法构建富文本通知,如长文本、图片等。方法为通知设置LED灯闪烁。方法为通知设置声音和振动。通过为通知设置意图(原创 2024-06-03 21:22:50 · 495 阅读 · 1 评论 -
关于Android优化
Android优化是一个复杂且多方面的过程,涉及到应用程序的各个方面,包括性能、用户体验、安全性等。以下是对Android优化的详细阐述,包括优化策略、优化方法以及优化工具,并辅以具体的案例或示例。用户体验优化主要关注于提高应用程序的响应速度、减少加载时间以及优化界面布局等方面。性能优化主要关注于减少内存占用、优化代码执行效率以及降低CPU和GPU负载等方面。安全性优化主要关注于加强应用程序的安全防护、保护用户隐私和数据安全等方面。原创 2024-04-29 22:53:00 · 478 阅读 · 2 评论 -
关于ListView的使用及其实现原理
适配器负责将数据转换为视图,通常有BaseAdapter、SimpleAdapter和ArrayAdapter等可供选择。需要重写适配器的相关方法,如。创建一个包含要展示数据的集合,如ArrayList或自定义的数据对象列表。ListView的实现原理主要基于视图复用和适配器模式。原创 2024-04-28 21:23:15 · 1020 阅读 · 2 评论 -
关于RecycleView使用及其原理
是 Android 开发中一个非常强大的组件,用于在有限的窗口上展示大量数据集。它提供了一个灵活的适配器模式,可以高效地处理大量数据,并且支持复杂的布局和动画效果。下面,我将详细介绍的使用及其实现原理,并结合代码进行说明。原创 2024-04-28 21:16:44 · 647 阅读 · 2 评论 -
关于Handle机制这一篇就够了
Android消息机制通过HandlerLooper和Message这四个核心组件实现了线程间的通信和异步操作。在Android开发中,利用消息机制可以有效地避免直接在UI线程中执行耗时操作,从而提升应用的响应性和用户体验。消息队列实现原理消息队列()是Android消息机制中的一个核心组件,它本质上是一个单链表的数据结构,用于存储待处理的Message对象。每个Message对象都按照它们被添加到队列中的时间顺序排列。的主要职责是管理这些消息,并提供添加、获取和删除消息的方法。添加消息:当通过。原创 2024-04-22 23:29:47 · 541 阅读 · 2 评论 -
关于Android异步这一篇就够了
Android中实现异步操作的方式有多种,每种方式都有其特定的应用场景和优缺点。以下是一些常见的异步实现方式及其优缺点,并附带简单的示例代码。原创 2024-04-22 23:19:39 · 995 阅读 · 0 评论 -
关于Android事件分发这一篇就够了
如果该View没有处理这个事件,或者它不可见或者不可触摸,事件会沿着视图层级向上传递,直到找到可以处理它的组件。它涉及到一系列组件和方法的协同工作,以确保事件能够正确地从顶层组件传递到最终的目标组件,并进行相应的处理。在某些复杂的UI交互中,可能需要延迟事件的分发,以便在事件到达最终的目标组件之前执行一些额外的逻辑。在Android开发中,事件分发机制不仅用于基本的用户输入处理,还可以通过进阶应用和最佳实践,提升应用的性能和交互体验。同时,也可以自定义组件并重写事件分发逻辑,确保滚动事件的正确传递和处理。原创 2024-04-21 22:16:45 · 592 阅读 · 0 评论 -
关于Android绘制这一遍就够了
在Android中,如果你想要进行自定义绘制,你需要继承View类,并重写onDraw()方法。在这个方法中,你可以获取Canvas对象,并通过这个对象调用Canvas的绘制方法来进行绘制。自定义View在Android中,如果你需要进行自定义绘制,你可以通过继承View类并重写onDraw()方法来实现。在onDraw()方法中,你可以获取Canvas对象,并通过这个对象调用Canvas的绘制方法来进行绘制。此外,你还可以通过或。原创 2024-04-21 22:00:13 · 947 阅读 · 0 评论 -
关于Android存储数据这一遍就够了
它是计算机的重要组成部分之一,提供写入和读出计算机工作需要的信息(程序和数据)的能力,实现计算机的信息记忆功能。Android引入了存储访问框架(SAF),它提供了一种统一的方式来访问存储设备上的文件,无论是内部存储还是外部存储。:对于耗时的存储操作,应使用异步处理的方式,避免阻塞主线程,保持应用的流畅性。在Android开发中,对于存储权限的管理是一个重要的环节。:由于不同版本的Android对于权限管理有不同的要求,开发者需要确保应用能够适配不同版本的Android系统,正确处理权限请求和拒绝的情况。原创 2024-04-21 14:34:17 · 699 阅读 · 1 评论 -
关于动画这一篇就够了
自定义动画类型:Android动画框架允许开发者创建自定义的动画类型。通过继承现有的动画类并重写相关方法,可以实现特定的动画行为。例如,可以创建自定义的插值器来改变动画的速度曲线,或创建自定义的动画效果来实现特殊的视觉效果。属性动画的自定义属性:除了使用系统提供的属性进行动画,还可以定义自己的属性并进行动画处理。这需要在自定义视图中添加getter和setter方法,并在属性动画中引用这些属性。动画与视图状态:视图的状态(如可见性、启用状态等)可以与动画进行关联。原创 2024-04-21 14:00:29 · 511 阅读 · 1 评论 -
关于ContentProvider这一遍就够了
您可以定义一个自定义的IntentFilter,并在ContentProvider的XML声明中指定该IntentFilter,以便其他应用程序可以通过发送相应的Intent来请求数据。它是Android系统中用于存储和检索数据的抽象层,允许不同的应用程序通过统一的接口访问数据,而不必关心数据的具体存储细节。例如,当你需要在Activity和Fragment之间共享数据时,可以使用ContentProvider来实现数据的传递和共享。您可以指定查询的列、筛选条件和排序方式,以满足不同的数据需求。原创 2024-04-17 22:07:21 · 1406 阅读 · 0 评论 -
关于Service这一篇就够了
Android Service是一种特殊的组件,它可以用来在后台执行长时间运行的操作,而不需要提供用户界面。Service可以由其他应用组件(如Activity)启动,即使启动它的组件已经被销毁,Service仍然会在后台继续运行。原创 2024-04-17 21:56:47 · 897 阅读 · 1 评论