- 博客(747)
- 收藏
- 关注
原创 写在前面
课程参考资料Android的学习是一个有趣而辛苦的过程,以下提供一些学习参考资料:Android参考资料Google Android官方资料: https://developer.android.com/index.html (cn网站:https://developer.android.google.cn/develop/index.html)CSDN关于Android的知识...
2016-12-19 09:50:52 2518
原创 【Android Room 库基础入门】
Room 是 Android Jetpack 的一部分。在 Android 中数据库是SQLite数据库,Room 就是在SQLite上面提供了一个抽象层,通过 Room 既能流畅地访问数据库,又能充分展示 SQLite 数据库的强大功能。Room 主要有以下几大优点:1.在编译时校验 SQL 语句;2.易用的注解减少重复和易错的模板代码;3.简化的数据库迁移路径。正是 Room 有以上的优点,所以建议使用 Room 访问数据库。提示:以下是本篇文章正文内容,下面案例可供参考。
2022-12-12 00:51:20 1019 1
原创 福建师范大学Android Room 技术浅谈
处理大量结构化数据的应用可极大地受益于在本地保留这些数据。最常见的使用场景是缓存相关的数据,这样一来,当设备无法访问网络时,用户仍然可以在离线状态下浏览该内容。Room 持久性库在 SQLite 上提供了一个抽象层,以便在充分利用 SQLite 的强大功能的同时,能够流畅地访问数据库。单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。
2022-12-08 21:47:18 984
原创 Android 动画和过渡
Android 动画和过渡(一) 动画JetpackCompose提供了强大且可扩展的API,可以轻松地在应用程序的UI中实现各种动画。下面描述了如何使用这些API以及根据动画场景使用哪些API。动画在现代移动应用程序中至关重要,以实现流畅和可理解的用户体验。许多Jetpack Compose Animation API都可以作为可组合的函数提供,就像布局和其他UI元素一样,并且它们由使用Kotlin协程暂停函数构建的低级API支持。本指南从在许多实际场景中有用的高级API开始,并继续解释为您提供进一
2022-12-06 20:32:19 2081
原创 Android Studio compose的简单使用与案例实现
Compose是Android团队与JetBrain大力推动的新一代UI框架,它能够简化安卓界面的开发,让本来繁琐的xml文件写法变为简便的kt文件写法。其声明式 UI、更简单的自定义、实时且带交互的预览功能更是让安卓开发锦上添花Jetpack并不是一个框架或者组件,它是一套库、工具和指南的集合,可帮助开发者更轻松地编写优质应用。这些组件可帮助开发者遵循最佳做法、摆脱编写样板代码的工作并简化复杂任务,以便将精力集中放在所需的代码上。1.替换以前的support库,提供一个更好,更加独立和稳健的兼容方案2.
2022-12-06 18:28:10 1627
原创 Android Radiobutton自定义背景、文字颜色、点击效果
在res目录下面创建一个color文件夹,里面创建一个状态选择器,设置选中效果颜色改变即可。直接在布局文件中设置android:textColor=“@color/color_radiobutton”然后直接背景和radioButton的点击效果一块实现在布局里面直接引用android:background=“@drawable/screen_radio”在drawable下面创建一个状态选择器再在drawable下面创建btn_selectorbtn_write_selector这样即可。张锦林
2022-12-06 18:19:11 1483
原创 Android数据存储及Room数据库的使用和原理分析
Android目前常见的数据存储方式有以下四种:Room是Google Jetpack家族的一员,Room在SQLite上提供了一个抽象层,以便在充分利用SQLite的强大功能的同时,能够流畅地访问数据库。ClientRoomSupportSQLiteOpenHelper主要三个组件1、数据库类(Database),用于保存数据库并作为应用持久性数据底层连接地主要访问点。2、数据实体(Entity),用于表示应用的数据库中的表。3、数据访问对象(Dao),提供你的应用可用于查询、更新、插入和删除数据
2022-12-06 18:16:25 619
原创 Android 动画实现 从基础到自定义
1.1 Java设置// Object object:需要操作的对象// String property:需要操作的对象的属性// float …values:动画初始值 & 结束值(不固定长度)// 若是两个参数a,b,则动画效果则是从属性的a值到b值// 若是三个参数a,b,c,则则动画效果则是从属性的a值到b值再到c值// 以此类推// 启动动画
2022-12-06 18:15:30 1149
原创 Android背景和音乐
简单的给app添加背景图和音乐效果如下二、加入背景音乐先准备好适合的音乐在res中创建一个raw文件将音乐放入raw文件目录下创建一个Java文件命名MusicServer.java,添加代码在MainActivity中加入代码使背景音乐生效3123d36dae40ede36fb8572032b26b64林欢原文链接:https://blog.csdn.net/qq_52972314/article/details/128177466?spm=1001.2014.3001
2022-12-05 00:19:54 434
原创 浅谈Android输入法(IME)架构
输入法本质就是一个Service,假设用户现在刚刚启动一个APP,焦点首次进入文本编辑框时,Android就会通知Service开始进行初始化,便有了生命周期图中所示的:首先执行onCreate方法,该方法做了一些字符串变量分隔符的初始化。其次执行onCreateInputView方法,在要显示用户输入的区域时,Android自带框架会调用这个方法,该方法对inputview进行初始化,读取布局文件信息,设置onKeyboardActionListener,并初始设置keyboard。然后执行onCreat
2022-12-05 00:18:02 2122
原创 Android依赖注入与Hilt的使用
目录基础知识一、依赖注入是什么?二.如果依赖注入这么简单,为什么需要专门开发一个框架?三.安卓的依赖注入框架Dagger与Hilt四.Hilt的使用hilt相关的注解hilt基本使用必须配置选项onlysampletest分支代码详解complextest分支代码详解(更复杂一些的使用)场景hilt的场景实现provider分支代码Hilt进阶使用multipleObjtest分支使用(同一类型提供多实现)预定义限定符(@ApplicationContext @ActivityContext)官方提供的类生
2022-12-05 00:16:56 1901
原创 Android访问网络资源
当我们写AndroidAPP的时候,一定会考虑一个很重要的问题,那就是如何让APP能调用网上的其他资源呢?这时候就需要用到URL(Uniform Resource Locator)。URL代表统一资源定位器,它是指向互联网“资源”的指针。所谓的资源,可以是简单的文件或者目录,也可以是更复杂的对象的引用,比如对数据库、搜索引擎的查询等等。通常来说,URL可以由协议名、主机、端口和资源组成,以下为格式:URL类提供了多个构造器用于创建URL对象,一旦获得了URL对象之后,就可以调用如下常用方法来访问该URL对
2022-12-05 00:15:50 1006
原创 Android-Jetpack Compose的简单运用
Jetpack Compose 是一个用于构建原生Android UI 的现代化工具包,它基于声明式的编程模型,因此你可以简单地描述UI的外观,而Compose则负责其余的工作-当状态发生改变时,你的UI将自动更新。由于Compose基于Kotlin构建,因此可以与Java编程语言完全互操作,并且可以直接访问所有Android和Jetpack API。①传统写UI的方式:就是先在建立一个xml文件,在里面写好布局好,再回到Java文件(或者是Kotlin文件)里去把控件实例化出来后,再去调用。②Compos
2022-12-05 00:15:31 1015
原创 Android WorkManager使用介绍
WorkManager 是google提供的异步执行任务的管理框架,是 Android Jetpack 的一部分,会根据手机的API版本和应用程序的状态来选择适当的方式执行任务。 在后台执行任务的需求是非常常见的,Android也提供了多种解决方案,如JobScheduler、Loader、Service等,如果这些API没有被恰当使用,则可能会消耗大量电量。Android在解决应用程序耗电问题上做了各种尝试,从Doze到App Standby,通过各种方式限制和管理应用程序,以保证应用程序不会在后
2022-12-05 00:13:38 4287
原创 Android Studio 画笔功能绘制简单图形
设置activity_main.xml为帧布局便于画图时直接使用位置进行绘制在mainactivity目录下新建myview类四 定义画笔五 绘制图形(1)矩形输出图形输出图形输出图形输出图形输出图形运行结果图作者:张峰腾学号:116052020132原文地址:https://blog.csdn.net/m0_56687634/article/details/128178373?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C
2022-12-05 00:12:52 1635
原创 使用Jetpack组件Navigation实现Android开发中页面跳转
目录一、前言1.概述2.导航图的创建(官网)二、基本使用1.依赖配置2.具体实例:使用Navigation实现页面的跳转。2.1.class的创建2.2 、页面布局文件的创建2.3 向 Activity 添加 NavHost2.4导航文件的配置清单2.5、按钮的布局 布局预览2.6、最终实现页面跳转3.导航图的预览4.最终实现预览导航是指支持用户导航、进入和退出应用中不同内容片断的交互。Android Jetpack的导航组件可以帮助实现导航,无论是简单的按钮点击,还是应用栏和抽屉式导航栏等更为复杂的模式
2022-12-05 00:08:35 744
原创 安卓属性动画
一.三种安卓动画Tween Animation(补间动画、视图动画):通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生的动画效果,即是一种渐变动画。Frame Animation(帧动画):顺序播放事先做好的图像,是一种画面转换动画。Property Animation:属性动画,通过动态地改变对象的属性从而达到动画效果,属性动画为API 11新特性。二.属性动画的优点1.属性动画是通过阈值器来调整的,可以高效完成简单的动画效果,从而节约内存空间。2.对比帧动画,是通过图片的切换来实现动画效果的
2022-12-05 00:07:38 604
原创 Android样式和主题背景
简介:借助 Android 中的样式和主题背景,我们可以将应用设计的细节与界面的结构和行为分开,其作用类似于网页设计中的样式表。样式是一个属性集合,用于指定单个View的外观。样式可以指定字体样式、字号、背景颜色等属性。例:在values/styles.xml文件里面设置样式格式直接引用主题背景是应用于整个应用、Activity或视图层次结构,而非仅仅应用于单个视图的属性集合。当应用主题背景时,应用或Activity中的每个视图都会应用其支持的每个主题背景属性。除了这些之外,主题还可以将样式应用于非
2022-12-04 15:35:51 944
原创 Android深色主题背景的实现及主题背景颜色互换
layout: posttitle: Android深色主题背景的实现及主题背景颜色互换date: 2-12-03 21:52:38 发布author: ‘zhangtao’header-img: ‘img/post-bg-2015.jpg’catalog: falsetags:-android-android studio-ide目录深色主题背景的优势:如何实现Android的深色主题模式:控制App内深色模式的自由切换:1.减少耗电量2.提高深夜中的可视性Android
2022-12-04 15:35:17 1083
原创 Android开发的UI设计——Material Design
Material Design 是用于指导用户在各种平台和设备上进行视觉、动作和互动设计的全面指南。如需在您的 Android 应用中使用 Material Design,请遵循 Material Design 规范中定义的准则,并使用 Material Design 支持库中提供的新组件和样式。作为Google旗下的一员——安卓,则是将其一些最具代表性一些控件和效果封装在_Material库_,这就让我们开发者可以在不了解Material Design的情况下,也很容易将自己的应用Material化,当然
2022-12-04 15:34:32 1083 1
原创 Android Studio 实现桌面小组件(APPWidget)
微件是定制主屏幕的一个重要方面。它允许您从用户的主屏幕直接看到最重要的应用程序数据和功能。用户可以在主屏幕面板之间移动微件、调整其大小,并根据自己的喜好自定义微件中的信息量。微贱类型主要分为:信息微件(显示对用户来说很重要的一些关键信息元素,并跟踪该信息随时间变化的情况),集合微件(专门显示同一类型的众多元素),控制微件(专门显示同一类型的众多元素),混合微件(将不同类型的元素组合在一起)。本文将用一个信息微件——在桌面显示时间为实例简单初步学习appwidget,实例如下:添加好后可看到:每个微件
2022-12-04 15:33:44 3643
原创 Android Room的使用详解
针对 SQL 查询的编译时验证。可最大限度减少重复和容易出错的样板代码的方便注解。简化了数据库迁移路径二:Room 库由 3 个主要组件组成:实体:Entity 表示数据库中的一个表,必须用@Entity 进行注释。每个实体至少包含一个字段,必须定义一个主键。DAO(数据库访问对象):在 Room 中,您可以使用数据访问对象来访问和管理您的数据。DAO 是 Room 的主要组件,包括提供对您的应用程序数据库的访问的方法,它必须用@Dao注释。使用 DAO 代替查询构建器,让您分离数据库的不同组件,
2022-12-04 15:32:40 9206
原创 Android自定义视图
自定义视图主要涉及四个方面:绘图、交互、性能和封装主要涉及两个对象:画布(Canvas)和画笔(Paint),画布主要解决画什么的问题,在画布上可以绘制各种各样的图形,可以通过移动、放大、缩小等来实现不同的效果;画笔主要解决如何画、怎么画的问题,通过控制画笔的大小,线条的粗细,路径上所要实现的特殊效果(填充、文字大小、字体等)涉及触摸(TouchEvent)和动画(Animation),设计触摸或手势动作过程中引发的动画效果,如过渡、渐变等绘图的onDraw()方法工作在主线程上,要考虑主线程安全问题,遇到
2022-12-04 00:13:16 465
原创 Android音频和视频开发
# 前言在如今快节奏,网络发达的社会。人们对于静态的图片和文字往往很难有精力去安心完整的阅读完网上内容。为了满足人们可以更生动的阅读网上的内容,也为了使网络交互更加生动。我们便需要应用到音频和视频来增加人们在网络上动作交互的丰富性。在使用媒体播放器时,我们可以使用移动设备上所有可用的媒体播放器,但最佳开发方法是我们应该使用与设备自带无关的媒体播放器为最佳。音频支持包括了支持的音频解码方式和音频播放文件格式视频支持包括了支持的视频解码方式和视频播放文件格式具体参考Android开发文档的媒体格式播放器
2022-12-04 00:12:55 584
原创 Android动画——使用动画启动Activity
我们在Android开发应用时,会遇到一个页面跳转到另一个页面的情况,这时候我们如果使用动画过渡会使得页面更加的流畅。 可以看到Android的过渡动画可以在不同状态之间建立视觉联系。您可以为进入和退出过渡,以及 Activity 之间共享元素的过渡指定自定义动画。 在Android的官方文档中,我们可以看到在Android 5.0(API)中进入和退出过渡有三种。 以上三种是Android已经定义好的Visibility的子类,我们也可以自定义Visibility的子类来实现过渡,那么
2022-12-04 00:11:47 2758
原创 Android 使用元数据
有时候为安全起见,某个参数要给某个活动专用,并不希望其他活动也能获取该参数,也就是要使用第三方SDK时。Activity提供了元数据(Metadata)的概念,元数据是一种描述其他数据的数据,它相当于描述固定活动的参数信息。description:可以向父组件提供的其他任意数据项的名称值对。一个组件元素可以包含任意数量的 子元素。所有这些子元素的值收集到一个 Bundle 对象,并且可作为 PackageItemInfo.metaData 字段提供给组件。初步实现首先打开AndroidMani
2022-12-04 00:10:49 737
原创 Android—过渡按钮的简单实现
Android 包含过渡框架,它使开发者能够轻松地为两个视图层次结构之间的变化设置动画。该框架通过随时间更改视图的某些属性值,在运行时为视图设置动画。该框架包括用于常见效果的内置动画,并允许开发者创建自定义动画和过渡生命周期回调。本项目基于此实现了一个过渡按钮。登录成功页面(activity_new.xml)主要代码给登录按钮设置监听事件(MainActivity.xml)点击登录按钮出现加载动画(TransitionButton.java)ValueAnimator.ofInt():由于
2022-12-03 17:27:00 728
原创 Android 之App Widget
1 App Widget简介应用微件是可以嵌入其他应用(如主屏幕)并接收定期更新的微型应用视图。这些视图称为界面中的微件,您可以使用应用微件提供程序发布微件。能够容纳其他应用微件的应用组件称为应用微件托管应用。下面的屏幕截图显示了闹钟微件。2 App Widg要创建应用微件,您需要: 对象描述应用微件的元数据,如应用微件的布局、更新频率和 AppWidgetProvider 类。此对象应在 XML 中定义。 类实现定义允许您基于广播事件以编程方式与应用微件连接的基本方法。通过它,您会在更新、启用、停用和删除
2022-12-03 17:26:28 544
原创 Android开发——Jetpack Compose的使用
Jetpack Compose是一个用于构建原生Android UI的现代工具包。只需要将声明性的函数构件一个简单的界面组件就能完成本该繁琐的UI界面设计。在没有Jetpack时,设计UI界面就像你想要搭建一个城堡,但是城堡的城墙高度、建造材料怎么得到、耗时耗力都需要你自己去算。而有了Jetpack后,设计UI界面就像你有一套完整的乐高积木,你想要搭怎么样的城堡,只要拿积木堆积即可,方便了不知多少。毫无疑问,如果你想要将Jetpack Compose运用到现有的项目,你需要在原有的配置和依赖中添加一些修改:
2022-12-03 16:35:01 645
原创 Android 腾讯位置服务地图简单使用
本文参考腾讯位置服务官方文档:Android地图SDK | 腾讯位置服务 (qq.com)腾讯位置服务地图SDK(Android)是一套基于Android 4.3及以上版本的多种地理位置服务的应用程序接口。 通过调用该接口,您可以轻松访问腾讯地图服务和数据,构建功能丰富、交互性强、契合各种行业场景的地图类应用程序。也可以在自己的Android应用中加入地图相关的功能,包括:地图展示、标注、绘制图形等。支持Android 4.3及以上系统。腾讯位置服务链接在AndroidManifest.xml的app
2022-12-03 16:31:58 2031
原创 Android 基于物理特性动画 —— 弹簧动画
在安卓开发中我们可以通过动画添加视觉提示,向用户通知应用中的动态。当界面状态发生改变时(例如有新内容加载或有新操作可用时),动画尤其有用。动画还为应用增加了优美的外观,使其拥有更高品质的外观和风格。Android 动画主要分为两大类:视图动画和属性动画,其中视图动画又包含补间动画和逐帧动画拆分成帧因为上两个动画作用对象局限,仅改变视觉效果且效果单一,为了弥补视图动画的缺陷,于是 Android 在 3.0(API 11)开始提供了一种全新的动画模式:属性动画(Property Animation)对比
2022-12-03 16:30:45 491
原创 Android Studio 中MotinLayout的简单使用
一、什么是MotionLayoutMotionLayout 是一种布局类型,可帮助您管理应用中的运动和微件动画。MotionLayout 是 ConstraintLayout 的子类,在其丰富的布局功能基础之上构建而成。二、使用MotionLayout的准备1.添加MotionLayout依赖项要在项目中使用 MotionLayout,请向应用的 build.gradle 文件添加 ConstraintLayout 2.0 依赖项。如果您使用了 AndroidX,请添加以下依赖项:如果您没有使用
2022-12-03 16:29:13 841
原创 Android Navigation基本使用
Navigation是指支持用户导航、进入和退出应用中不同内容片段的交互。用于处理 Fragment事务,使fragment之间可以自由切换和跳转,同时还包括导航界面模式(例如抽屉式导航栏和底部导航),可以降低用户工作量如果要在应用中导航,则通过NavController,沿导航图中的特定路径导航至特定目标,或直接导航至特定目标。NavController 就可以在NavHost里进行跳转。在Module的build.gradle下添加如下依赖,再进行同步,完成环境设置4. 使用方法4.1. 创建导航图
2022-12-03 16:28:39 1863
原创 Android Jetpack-Compose相关
Jetpack Compose 是用于构建原生 Android 界面的新工具包。它使用更少的代码、强大的工具和直观的 Kotlin API,可以帮助您简化并加快 Android 界面开发,打造生动而精彩的应用。它可让您更快速、更轻松地构建 Android 界面。(注:想要使用Compose编写程序需要先把你的AndroidStudio升级到Android Studio Arctic Fox 或更高版本。)与使用 Android View 系统(按钮、列表或动画)相比,Compose 可使用更少的代码实现更多
2022-12-03 16:27:33 574
原创 Android Jetpack Compose的基本介绍
Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少样板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。Jetpack Compose是用于构建原生Android UI的现代工具包。 Jetpack Compose使用更少的代码,强大的工具和直观的Kotlin API,简化并加速了Android上的UI开发。Jetpack Compose 是一个适用于 Android 的新式声明性界面工具包。Compose 提供声明性 API,让
2022-12-03 16:26:55 825
原创 关于Jetpack Compose的初步使用、学习和总结
根据developers上的介绍,Jetpack Compose 是推荐用于构建原生 Android 界面的新工具包。它可简化并加快 Android 上的界面开发,使用更少的代码、强大的工具和直观的 Kotlin API,快速打造生动而精彩的应用。
2022-12-02 22:26:22 717
原创 android studio implementation包时报错
(对于 Android 8.0 和更高版本,必须设置渠道重要性,如下一节中所示。在用户未使用您的应用时,通知可向他们及时提供有关应用事件的简短信息。然后发现CHANNEL_ID报错,查询了一下发现这个是自己设置的,不影响使用就加随便添加了一个String类型。这是所必需的唯一用户可见内容。爆红,观察错误提示的解决方法,将下列代码添加到gradle.properties。此次处理成功绝大部分因为版本较少,比较好找,如果版本较多需要一个一个下,比较痛苦。重新编译,发现版本不匹配,于是开始研究匹配的版本。
2022-12-02 22:23:55 641
原创 【intent-filter】AndroidManifest中<intent-filter>标签的 部分作用
好比用户想打开一个.txt文件,有很多应用程序可以打开,比如 掌阅app,比如wps app,比如QQ浏览器app,这时候可以使用某种规则,做成隐式启动,表达这几个app都可以用来启动.txt文件,当打开.txt文件的时候,用户就可以自己选择想要的程序来启动文件了。当系统得到启动意图时,会遍历注册文件中的各个Intent-filter标签中的内容,从而起到赛选作用,当有符合 启动意图 的过滤准则的activity时,把他放到启动列表中,当出现多个符合activity时,由用户选择启动对象。
2022-12-02 22:22:19 2404
原创 安卓使用动画启动Acitvity
切换的Activity和当前Activity中没有共享元素的时候使用1,2指定过渡动画,切换的Activity和当前Activity中有共享元素的时候使用3,4指定过渡动画。动画过渡Activity适用于*Android5.0(API21)*及以上,在代码增加中检查版本增强代码健壮性。也可以只设置第一个Acticity的过渡动画,不过此时第二个Activity要调用。第一个Activity退出时的过渡动画启用。设置具有共享元素的Activity进入时的动画。设置具有共享元素的Activity退出时的动画。
2022-12-02 17:20:38 1247
原创 Android开发JetPack-Databinding组件
Databinding是谷歌的一个官方支持库,它允许您使用声明性格式而不是通过编程方式将布局中的UI组件绑定到应用程序中的数据源。通常在活动中使用调用UI框架方法的代码来定义布局。例如,调用findViewById()以查找TextView窗口小部件并将其绑定到变量。因为它通过在布局文件中绑定组件,您可以删除活动中的许多UI框架调用,从而使它们更易于维护。这也可以提高应用程序的性能,并有助于防止内存泄漏和空指针异常。1、布局文件通常只负责UI控件的布局工作,页面中通过代码对控件需要进行各种操作,承担了绝大部
2022-12-02 17:11:29 885
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人