
Android开发
文章平均质量分 75
有关Android开发知识笔记
彭于晏689
瞎写写留作纪念。
展开
-
【Android】Compose状态
对于更复杂的数据类型,你可以创建自定义的Saver来定义如何序列化和反序列化状态。这允许你保存几乎任何类型的对象。原创 2024-12-12 15:34:16 · 1080 阅读 · 0 评论 -
【Android】Compose布局
自定义的 Modifier 扩展函数 firstBaselineToTop,以及一个使用该 Modifier 的 Composable 函数 TextWithPaddingToBaseline。// 测量元素,并根据提供的约束条件获取其尺寸信息。// 获取文本内容的第一行基线距离顶部的距离。// 这个值用于计算文本相对于父容器顶部的位置。// 计算新的Y坐标,确保文本的第一行基线距离顶部为指定的Dp值。// 如果文本的第一行基线已经比指定的Dp值大,则placeableY将会是一个负数,原创 2024-12-11 13:46:19 · 652 阅读 · 0 评论 -
【Android】Compose初识
在Compose中,一个组合可以被视为一系列的可组合函数调用,这些函数共同描述了应用的UI。声明式UI(Declarative User Interface)是一种用户界面编程范式,它允许开发者以声明的方式描述用户界面的结构和行为,而不是详细地指定如何实现这些行为。这种方式简化了UI代码的编写和维护,因为它减少了手动操作DOM或视图层级的需要,同时使得UI逻辑更加直观易懂。Jetpack Compose是谷歌开发的一个现代的、声明式的UI工具包,用于构建原生的Android应用程序界面。原创 2024-12-05 22:46:08 · 2432 阅读 · 0 评论 -
【Android】Service
是一个可以在后台长时间运行的组件,用于执行耗时操作或执行那些不需要与用户界面直接交互的任务。的方法,但它们的使用场景和行为有所不同。不依赖于用户界面,即使用户切换到其他应用,在Android开发中,在 Android 中,原创 2024-11-03 21:52:11 · 1331 阅读 · 0 评论 -
【Android】Activity组件通信
在MVVM架构中,ViewModel可以用来在多个Activity或Fragment之间共享数据。ViewModel的生命周期与Activity或Fragment的生命周期独立,因此它可以保留数据,即使Activity或Fragment被重新创建。在Android中,Activity之间的通信是一个常见且重要的任务。这是最常见的方式,适用于从一个Activity向另一个Activity传递数据。当需要从一个Activity启动另一个Activity,并期望从后者返回结果时,可以使用。方法来处理返回的结果。原创 2024-11-03 20:30:13 · 672 阅读 · 0 评论 -
【Android】Kotlin教程(7)
总结:Kotin这门语言是谁设计的,语法很辣鸡,纯属是为了造门语言而造语言。原创 2024-10-28 12:40:59 · 1630 阅读 · 0 评论 -
【Android】Kotlin教程(6)
扩展函数允许你为现有的类添加新的功能,而无需修改该类的源代码。这使得你可以向库中的类或第三方库中的类添加自定义方法,从而增强其功能。扩展函数在使用时看起来就像它们是原始类的一部分一样。定义扩展函数:要定义一个扩展函数,你需要在函数名前面指定接收者类型(即你要扩展的类),并在接收者类型和函数名之间使用点号 .。接收者类型的实例将作为隐式的第一个参数传递给扩展函数。val tmp = this[index1] // “this”对应该列表。原创 2024-10-27 21:32:06 · 941 阅读 · 0 评论 -
【Android】Kotlin教程(5)
密封类(Sealed Class)是 Kotlin 中的一种特殊类,它用来表示受限的类层次结构。这意味着密封类的所有直接子类都必须在同一个文件中定义,或者作为密封类的嵌套类来定义。如果一个类只对另一个类有用,那么将其嵌入到该类中并使这两个类保持在一起是合乎逻辑的,可以使用嵌套类。object 表达式还可以用来创建一个临时的对象实例,这个对象可以继承自某个类或实现某个接口。如果要将内置运算符应用在自定类身上,必须重写运算符函数,告诉编译器该如何操作自定义类。枚举类,用来定义常量集合的一种特殊类。原创 2024-10-27 10:51:28 · 1204 阅读 · 0 评论 -
【Android】Kotlin教程(4)
在People类的定义头中定义一个主构造函数,使用临时变量为Player的各个属性提供初始值,在Kotlin中,为了便于识别临时变量通常都会以。延迟初始化并不是初始化的唯一方式,你也可以暂时不初始化某个变量,知道首次使用它,叫做惰性初始化。定义构造函数时,可以给构造函数指定默认值,如果用户调用时不提供值参,就是用这个默认值。初始化块可以设置变量或值,以及执行有效性检查,如检查传给某构造函数的值是否有效,除了主构造函数还有次构造函数,我们可以定义多个次构造函数来配置不同的参数组合。原创 2024-10-26 15:36:57 · 1108 阅读 · 0 评论 -
【Android】Kotlin教程(3)
Kotlin中提供了各种Array,虽然是引用类型,但是可以编译成Java基本数据类型。通过setOf创建set集合,使用elementAt函数读取集合中的元素。在Kotlin中,支持内容修改的列表叫可变列表,要创建可变列表,可以使用。通过MutableSetOf创建可变的set集合。函数动态实现只读列表和可变列表的相互转换。使用 with 和 apply 函数。通过_符号过滤不想要的元素。原创 2024-10-26 11:00:56 · 1015 阅读 · 0 评论 -
【Android】Kotlin教程(2)
是一个作用于对象的范围函数(scope function),它允许你在给定的对象上执行一段代码块,并且在这个代码块中可以访问该对象。run 是一个作用域函数(scope function),它允许你在对象的上下文中执行一段代码块,并且可以返回该代码块的结果。split函数返回的是List集合数据,List集合又支持结构语法特性,它允许你在一个表达式里给多个变量赋值,解构常用来简化变量的赋值。需要显式地传递一个接收者对象,并且它返回的是 lambda 表达式的最后一个表达式的值,而不是接收者对象本身。原创 2024-10-26 09:58:39 · 1656 阅读 · 0 评论 -
【Android】Kotlin教程(1)
和具名函数一样,匿名函数可以不带参数,也可以带一个或者多个任何类型的参数,需要带参数时,参数的类型放在匿名函数的类型定义中,参数名则放在函数定义中。在Kotlin中,匿名函数能修改并引用定义在自己作用域之外的变量,匿名函数引用着定义自身的函数里的变量,在Kotlin中的lambda就是闭包。定义参数是函数的函数,如果一个函数的lambda参数排在最后,或者是唯一参数,那么括住lambda值参的一对圆括号可以省略。函数类型也是有效的返回类型,也就是说可以定义一个能返回函数的函数。原创 2024-10-25 12:32:57 · 1601 阅读 · 0 评论 -
【Android】自定义EditText
在有些时候,我们需要一些特殊的控件,比如EditText要具有整行下划线。我们通过重写EditText来实现。原创 2024-10-24 11:30:07 · 299 阅读 · 0 评论 -
【Android】自定义ViewGroup制作标签云TagCloud
我们通过重写ViewGroup来制作标签云。原创 2024-10-24 11:29:39 · 252 阅读 · 0 评论 -
【Android】Android动画
在res文件夹下创建animator文件夹,创建。在drawable文件夹中定义。通过在anim文件夹创建。通过在anim文件夹创建。通过在anim文件夹创建。通过在anim文件夹创建。原创 2024-10-24 11:29:22 · 159 阅读 · 0 评论 -
【Android】Activity
元数据的meta-data标签除了前面说到的name属性和value属性,还拥有resource属性,该属性可指定一个XML文件,表示元数据想要的复杂信息保存于XML数据之中。元数据不仅能传递简单的字符串参数,还能传送更复杂的资源数据,比如支付宝的快捷式菜单。没有明确指定要跳转的目标活动,只给出一个动作字符串让系统自动匹配,属于模糊匹配。3.调用意图对象setComponent方法。2.调用意图对象的setClass方法指定。1.在Intent构造函数中指定。原创 2024-09-30 21:21:25 · 1171 阅读 · 0 评论 -
【Android】Android广播
为了避免横竖屏切换时重新加载界面的情况,Android设计了一种配置变更机制,在指定的环境配置发生变更之时,无需重启活动页面,只需执行特定的变更行为。getSubtype:获取网络的子类型。如果为数据连接时,子类型为2G/3G/4G等细分。getTypeName:获取网络类型名称。getType:获取网络类型。原创 2024-10-06 10:09:52 · 1519 阅读 · 0 评论 -
【Android】Android高级控件
文章目录1.下拉列表Spinner1.数组适配器ArrayAdapter2.简单适配器SimpleAdapter3.基本适配器BaseAdapter2.列表视图ListView3.网格视图GridView4.翻页视图ViewPager5.翻页标签栏pagerTabStrip6.ViewPager实现引导页7.碎片Fragment1.Fragment静态注册2.Fragment生命周期3.Fragment动态注册1.下拉列表Spinner1.数组适配器ArrayAdapter最简单的适配器,只展示一行文原创 2024-10-05 21:26:43 · 1366 阅读 · 0 评论 -
【Android】Android内容共享
Android系统为了防止某些App滥用权限,从6.0开始引入了运行时权限管理机制,允许App在运行过程中动态检查是否拥有某项权限,一旦发现缺少某种必须的权限,则系统会自动弹出小窗提醒用户去开启该权限。利用ContentProvider只实现服务端App数据封装,如果客户端App想访问对方内部数据,就要通过内容解析器ContentResolver访问。ContentProvider为App存取内部数据提供统一的外部接口,让不同的应用之间得以共享数据。请求系统弹窗,以便用户选择是否开启权限。原创 2024-10-06 14:14:16 · 430 阅读 · 0 评论 -
【Android】Jetpack-ObservableField实现双向绑定
是Android Data Binding库中的一个类,用于实现双向绑定。双向绑定意味着当数据模型中的数据发生变化时,UI会自动更新;同时,当用户在UI上进行操作时,数据模型也会相应地更新。3.在你的布局文件中使用标签包裹你的布局,并使用标签引用ViewModel。1.在你的项目中添加Data Binding依赖。4.在你的Activity或Fragment中设置ViewModel和布局。2.创建一个包含ObservableField的ViewModel类。原创 2024-10-10 20:51:44 · 531 阅读 · 0 评论 -
【Android】Jetpack-LifeCycle
【代码】Jetpack-LifeCycle。原创 2024-10-10 20:53:59 · 225 阅读 · 0 评论 -
【Android】Jetpack-ViewModel+LiveData+DataBinding
LiveData是Android架构组件中的一部分,用于在数据源和UI之间建立连接,实现数据的实时更新和同步。它允许观察者(例如Activity或Fragment)订阅数据变化,并在数据发生变化时自动更新UI。Android DataBinding是Google在Jetpack中推出的一款数据绑定的支持库,它通过将数据源直接与UI元素进行绑定来实现数据与视图之间的自动更新。原创 2024-10-10 22:23:22 · 1105 阅读 · 4 评论 -
【Android】Jetpack-Room
是Android Jetpack中的一个组件,它提供了一个抽象层,帮助开发者在本地数据库(如SQLite)上进行持久化数据存储。Room通过简化数据库操作,使得数据管理变得更加容易和高效。在Android开发中,使用DAO(Data Access Object)、Repository和ViewModel的架构模式是为了实现数据与界面的清晰分离,提高应用的可维护性和扩展性。4.定义StudentRepository。5.定义StudentViewModel。3.定义MyDatabase。原创 2024-10-14 17:06:37 · 480 阅读 · 0 评论 -
【Android】Fragment动态切换以及生命周期
因为事先Fragment中已经写好了日志,我们打开Logcat查看对应日志即可。接下来是MainActivity和布局文件。首先我们准备好两个切换用的Fragmet。还有实现切换按钮的Fragment。原创 2024-04-25 12:45:30 · 1056 阅读 · 0 评论 -
【Android】RecyclerView 实现滚动列表
【代码】【Android】RecyclerView 实现滚动列表。原创 2024-04-25 12:45:20 · 362 阅读 · 0 评论 -
ViewPager2+Fragment+TabLayout 实现页面滑动
Frafment1中我还写了个Fragment切换,如果不需要可以删除,写成和Fragment2一样即可。对于Fragment中的页面内容随便写个TextView就行。原创 2024-04-25 12:44:49 · 352 阅读 · 0 评论 -
Android简单控件
安卓开发之简单控件在Java代码中调用文本视图对象的 setText 方法设置文本设置文本的大小:在Java代码中调用setTextSize方法,即可指定文本的大小在XML文件中则通过属性android:textSize指定文本大小,此时需要指定字号的单位设置文本的颜色:2.视图基础视图宽度通过属性android:layout_width表达,视图高度通过属性android:layout_height表达,宽高的原创 2024-01-08 13:53:55 · 1881 阅读 · 1 评论