![](https://img-blog.csdnimg.cn/64e77c2a7f79457ebf91f0904e109df3.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android基础入门
文章平均质量分 90
Android学习入门基础,从约束布局,滚动组件,界面跳转与传值,RecyclerView列表组件,SQLite数据库,网络数据传输等等,以及各种开源控件的介绍如Room,Glide等等
starry陆离
这个作者很懒,什么都没留下…
展开
-
【毕业季_进击的技术er】送别过去两年迷茫的自己。重整旗鼓,大三我来啦
我是starry陆离。2020级计科专业的一名准大三学生,一位喜欢写作,不太擅长交流的男生,是 男生!!! 因为头像和文章风格两次被人误以为是女生了,我真的栓Q啊。我在高考之前都从来没有了解也没有考虑要到计算机行业发展,之前我一直想成为一名临床医生,所以到高考填报志愿的时候我填报的仍然是医学院校,医学专业,但迫于分数线和自己填报志愿时的考虑不周,调剂到了中医药院校的计算机专业。其后在一学期的学习中,我对计算机行业也有所了解,并且对中医不感兴趣,所以也没有参加转专业考试,转眼间已经过去两年了~大学我接触的第一原创 2022-06-22 07:30:00 · 850 阅读 · 78 评论 -
『Material Design』CollapsingToolbarLayout可折叠标题栏
CollapsingToolbarLayout不能独立存在它在设计的时候就被限定只能作为AppBarLayout的直接子布局来使用。而AppBarLayout又必须是CoordinatorLayout的子布局;原创 2022-11-02 22:39:02 · 861 阅读 · 3 评论 -
『Android』Toolbar+DrawerLayout+NavigationView实现类似QQ侧边栏效果
ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar。虽然这样看上去好像和ActionBar外观上没什么两样,不过是我们还没用到Material Design中的特性,Toolbar的强大之处在于它可和其它控件联动实现强大的效果,之后再慢慢体验。这里其实学到了很多的新控件和新知识,例如Toolbar,然后复习了drawerLayout,学到了一个新的控件NavigationView以及一个处理图片成圆形格式的开源库circleimageview。原创 2022-10-14 12:54:56 · 2594 阅读 · 12 评论 -
『Android』什么是Service
1.什么是Service2.Service的创建3.Service的类型启动式服务绑定式服务Service是一种可在后台执行长时间运行操作而不提供界面的应用组件。例如,服务可在后台处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序进行交互。注意:服务在其托管进程的主线程中运行,它既不创建自己的线程,也不在单独的进程中运行(除非另行指定)。所以在Service中不能进行耗时的操作。原创 2022-10-07 12:52:00 · 1311 阅读 · 2 评论 -
Fragment+ViewPager+TabLayout实现主页的顶部页面导航
首先这部分笔记是接着上一个Module写的,所以前面的那部分代码就不再赘述。要实现Fragment+ViewPager+TabLayout实现主页的顶部页面导航其实主页就是一个Fragment里又嵌套了ViewPager,所以我们为了区别于其他三个模块,我不再使用MyFragment,而是新建一个MyHomeFragment,在其中我联动TabLyout再嵌套ViewPager原创 2022-10-06 18:53:23 · 2030 阅读 · 0 评论 -
『Android基础入门』ViewPager+Fragment+BottomNavigationView实现底部导航
在ViewPager与Fragment结合实现多页面滑动的学习上再进一步,记录一下ViewPager+Fragment+BottomNavigationView实现底部导航* 1.复习ViewPager的用法 * 2.复习FragmentPagerAdapter的使用 * 3.BottomNavigationView的使用 * 4.ViewPager切换页面与BottomNavigationView的联动 * 5.Badge(新消息提示,图标右上角红圈)原创 2022-10-05 18:18:58 · 4568 阅读 · 4 评论 -
『Android基础入门』ViewPager与Fragment结合实现多页面滑动
上次记录了ViewPager实现引导动画的效果,这次来实现一个类似的效果**ViewPager与Fragment结合实现多页面滑动**主要使用到了`FragmentPagerAdapter` :用于连接ViewPager与Fragment的桥梁复习ViewPager实现引导页: * 数据List+适配器Adapter+ViewPager**FragmentPagerAdapter的用法**: * 1.重写getItem() 获取fragment * 2.重写getCount()原创 2022-10-04 18:28:10 · 3034 阅读 · 3 评论 -
『Android基础入门』ViewPager实现引导动画的效果
adapter与viewpager的关系 adapter是将数据渲染到视图的桥梁;1.继承自PagerAdapter抽象类2.重写抽象类中的方法getCount()和isViewFromObject()3.ctrl+o重写 生成:instantiateItem() 销毁:destroyItem()4.用一个imageViewList数组来存储图片数据,并创建构造函数初始化5.getCount()方法返回图片的数量。原创 2022-10-03 23:55:35 · 1079 阅读 · 1 评论 -
『Android开源框架』用XXPermissions请求相机权限实现手电筒
今天实现一个小功能,调用相机权限实现手电筒,顺带学习一下`CameraManager`系统服务和两个好用的权限请求框架,主要推荐使用`XXPermissions`原创 2022-08-26 23:45:00 · 1983 阅读 · 47 评论 -
『Android基础控件』Lottie实现复杂动画效果
好久没有更新Android系列的文章了,其实是好久没学了。从今天起重操旧业,好好把这个系列学下去。之前在做课设的时候一直有一个执念就是怎么做动画,但是苦于懒惰和时间有限,急急忙忙做了个半成品就交差了,根本顾不上去研究怎么做动画,今天它就来了。Lottie是一个适用于Android和iOS的移动库,它解析使用导出为json的动画,并在移动设备上以本机方式渲染它们!将设计好的动画导出成 JSON 格式,就可以直接运用在iOS、Android、Web和之上,无需其他额外操作。原创 2022-08-22 07:00:00 · 2742 阅读 · 31 评论 -
『Android基础入门』dataBinding的简单使用
dataBinding是实现 view 和 data 绑定的工具,把数据映射到 view 的 xml中,可以在 xml 布局文件中实现 view 的赋值,方法调用。使用 DataBinding 后,我们不用再写 findViewById,不用再获取控件对象,不用再设置监听,可以节省我们 activity 中的很多获取控件,赋值,添加监听所需要的代码。可以说MVP + DataBinding就是MVVC(关于MVC,MVP,MVVC的区别可看往期文章)选中布局文件的第一行,按就会弹出提示,默认选中改造好的的新原创 2022-06-05 07:45:00 · 2057 阅读 · 36 评论 -
『Android基础入门』APP打包发布
将应用程序打包为apk文件-》进行签名-》apk申请著作权(花点钱,写文档/找中介)-》应用市场检查程序是否合法-》成功发布在这个网站可以下载各种手机app软件百度手机助手_有颜又有货的应用商店 (baidu.com)通过生成一个apk文件选择APK方式发布,默认是方式发布,这一般是发布到国外市场。然后就是创建一个新的密钥和密钥库,自己创建一个特殊文件我之前创建过密钥库,所以进来就是这张界面如果是第一次打包没有创建过密钥和密钥库,则需要点击Key store path:创建密钥库的位置Password:为密原创 2022-06-01 07:45:00 · 3213 阅读 · 41 评论 -
『Android基础入门』:EventBus实现总线数据分发
我们之前学习了Activity-》Activity中的数据传送,是通过方法实现的,如果要实现Activity-》Fragment或者Fragment-》Fragment都是不方便的,通过EventBus能很好的解决这个问题4.场景:Activity->Activity4.1准备两个Activity首先我们创建两个Activity,实现从Activity1跳转到Activity2,并且把Activity2中的数据传回到Activity1在Activity1中设置一个跳转按钮在Activity2中设置一个原创 2022-05-30 08:00:00 · 834 阅读 · 31 评论 -
『Android基础入门』从Android开发的角度比较MVC,MVP,MVVM的优缺点
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。......原创 2022-05-22 09:44:50 · 4754 阅读 · 44 评论 -
『Android开源控件』drawerlayout侧滑菜单(抽屉效果)
官网:Drawerlayout | Android 开发者 | Android Developers (google.cn)首先我们不再使用约束布局作为根布局,使用drawerlayout布局,并为其创建id属性在其中嵌套两个同级的约束布局,此时嵌套的两个子约束布局是重叠在一起的为做区分我们给两个约束布局上分别添加一个Button,因为两个布局层叠再一起所以建议使用代码的方式直接添加Button完整代码如下所示:2. 使用layout_gravity设置布局相对位置关键的步骤来了:为任意一个嵌套原创 2022-05-21 08:00:00 · 3143 阅读 · 32 评论 -
『Android基础入门』技术发展与学习路线
理想情况下,Android中的所有功能全部都可以通过webView使用网页来实现,但为什么web没有取代Android开发?那是不是前端的工程师都可以兼职开发Android,干嘛还要发展Android呢?(让我浅浅的水一篇文章吧)开发者是向前走的2015年4月Facebook就推出React Native (简称RN)官网:https://reactnative.dev/这项技术显然冲击了Google公司,如果任由RN发展,前端就极可能替代移动应用开发Google公司很早就意识到了这种趋势,所以早早的就做出原创 2022-05-15 08:31:21 · 608 阅读 · 18 评论 -
『Android基础入门』视图绑定与网络编程WebView
在 WebView 中编译 Web 应用 | Android 开发者 | Android Developers (google.cn)android里可以嵌套网页,如微信公众号,小程序在xml文件中添加一个控件要在 中加载网页,使用 方法:这样我们可以看到,成功将网页嵌入到了app中,不过网页仍然是以网页端显示通过如下设置可以使样式和手机端样式显示2.3 嵌入自定义(本地)网页创建一个...原创 2022-05-14 10:18:10 · 529 阅读 · 16 评论 -
『Android基础入门』网络编程之OKHTTP与Retrofit框架
网络请求-》java-》OKHTTP数据解析-》java解析-》GSON配合插件解析概述 - OkHttp (square.github.io)HTTP是现代应用程序网络的方式。这就是我们交换数据和媒体的方式。有效地执行 HTTP 会使内容加载速度更快并节省带宽。OkHttp 是一个默认高效的 HTTP 客户端:OkHttp 适用于 Android 5.0+(API 级别 21+)和 Java 8+。框架官网地址添加网络请求权限添加依赖由此我们可以知道okhttp框架相较于传统的网络请求的优势:打印测原创 2022-05-13 07:57:53 · 718 阅读 · 16 评论 -
『Android』网络请求数据与JSON解析
既然需要访问网络自然需要网络请求权限除此之外还需要加上这一行,否则http的网页请求不成功这段代码是网络请求数据,这是老师提前发在网上的数据文件,可通过这个网址访问,其中的数据是:将这段代码放在主线程下执行会出现网络在主线程异常-》网络请求不能在主线程生命周期中执行的方法默认是主线程(UI线程)不能执行耗时的操作耗时操作-》such as:读取文件(读数据库)、网络请求因此我们需要创建一个子线程来访问网络数据,并且在子线程中将获取到的数据显示在控件上运行发现虚拟机上只显示一部分数据,查看日志窗口发原创 2022-04-30 19:35:31 · 3217 阅读 · 31 评论 -
『Android』复杂数据的存储SQLite和Room框架
注意:不是教程只是笔记,如有错误欢迎批评指正常用的数据库 sqlserver oracle mysqlAndroid嵌入式数据库SQLiteSQLite数据库支持SQL语法和ACID事务,适用于存储大量的关系型数据eg:qq的聊天列表学习强国的新闻创建数据库需要使用到一个抽象类它有两个抽象方法::创建数据库:升级数据库和用于创建或打开一个数据库,返回一个可对数据读写操作的对象,两者的区别是:当数据库不可写入时(如磁盘满了),方法返回的对象将以只读的方式打开数据库,方法则会出现异常有3个构造方法可供重写,其中原创 2022-04-30 19:25:45 · 3270 阅读 · 14 评论 -
『Android开源控件』Banner广告图片轮播控件
注意:不是教程只是笔记,如有错误欢迎批评指正cwf/banner只做一个可以自定义的轮播容器,不侵入UI — Banner 2.0 (gitee.com)Banner广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等这里加载图片用到了之前的,具体用法详见笔记...原创 2022-04-28 22:08:07 · 2370 阅读 · 26 评论 -
『Android开源控件』ImmersionBar沉浸式状态栏
注意:不是教程只是笔记,如有错误欢迎批评指正gyf-dev/ImmersionBar: android 4.4以上沉浸式状态栏和沉浸式导航栏管理ImmersionBar: android 4.4以上沉浸式状态栏和沉浸式导航栏管理以上沉浸式状态栏和沉浸式导航栏管理,适配横竖屏切换、刘海屏、软键盘弹出等问题,可以修改状态栏字体颜色和导航栏图标颜色,以及不可修改字体颜色手机的适配,适用于Activity、Fragment、DialogFragment、Dialog,PopupWindow,一句代码轻松实现,以及对原创 2022-04-28 22:04:16 · 2844 阅读 · 2 评论 -
『Android』SharedPreferences简单数据存储【模拟QQ登录】
注意:不是教程只是笔记,如有错误欢迎批评指正保存键值对数据 | Android 开发者 | Android Developers (google.cn)如果您有想要保存的相对较小键值对集合,则应使用 API。 对象指向包含键值对的文件,并提供读写这些键值对的简单方法。每个 文件均由框架进行管理,可以是私有文件,也可以是共享文件。例如:我们登录qq并不是每次都会要输入账号密码,而是会记住密码和用户的登录状态,这些轻量的数据可以通过以键值对的方式存储在本地这里我们创建三个Activity,分别代表QQ欢原创 2022-04-28 22:01:47 · 3351 阅读 · 1 评论 -
【Android开源控件】SmartRefreshLayout实现下拉刷新,上划加载
注意:不是教程只是笔记,如有错误欢迎批评指正本份笔记代码是继🍀【Android】5.0RecyclerView列表组件SmartRefreshLayout: 下拉刷新、上拉加载、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。 (gitee.com)在原先的recyclerview工程下的build.gradle下引入如下依赖,然后点击sync now3. 创建一个组件...原创 2022-04-27 19:55:03 · 4327 阅读 · 26 评论 -
『Android基础入门』RecyclerView列表组件的简单使用
注意:不是教程只是笔记,如有错误欢迎批评指正使用 RecyclerView 创建动态列表 | Android 开发者 | Android Developers (google.cn)RecyclerView是Android推出的列表组件,例如QQ的消息列表,备忘录的条目列表等等都是可以使用RecyclerView来实现新建一个Module,取名为recyclerview在xml文件下,可以看到常用的组件里就有RecyclerView组件直接拖动一个RecyclerView组件到布局上并设置好约束,可以看原创 2022-04-27 19:48:05 · 1503 阅读 · 0 评论 -
『Android开源控件』Glide图片加载库
注意:不是教程只是笔记,如有错误欢迎批评指正是一个快速高效的图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(),以及自动的资源池技术。Glide 使用简明的流式语法API,这是一个非常棒的设计,因为它允许你在大部分情况下一行代码搞定需求:1.2性能Glide 充分考虑了Android图片加载性能的两个关键方面:为了让用户拥有良好的App使用体验,图片不仅要快速加载,而且还不能因为过多的主线程I/O或频繁的垃圾回收导致页面的闪烁和抖动现象。Glide使用了多个步骤原创 2022-04-26 09:49:38 · 886 阅读 · 5 评论 -
【Android】4.0Fragment的使用(动态添加与组件获取)
🍀【Android】4.0Fragment的使用原创 2022-04-26 09:44:30 · 2273 阅读 · 0 评论 -
『Android基础入门』如何实现界面间的数据传输(基础数据和对象类型数据)
页面间的数据传输是通过intent.putExtra()方法实现的如下可见它重载了很多方,各种数据类型的传输都有封装实现,这里就浅拿字符型数据举个栗子吧putExtra()与java中的HashMap的put()方法有诸多相似,它也有两个参数,前者为值名,后者为值在新界面的Activity中捕获传输来内容原创 2022-04-22 11:11:22 · 2281 阅读 · 0 评论 -
『Android基础入门』如何实现页面的跳转(任务栈机制)
此笔记是承上启下的,关于为页面添加响应的内容请详看【Android】如何为组件添加响应要实现两个页面间的跳转,肯定要有两个界面,这里展示如何创建一个空的Activity文件在新建的activity的xml布局文件下,创建几个新的组件在MainActivity中添加跳转,当点击跳转按钮就跳转到第二个界面关键代码如下所示:同样的道理,我们为第二个界面也添加跳转,跳回到主界面在MainActivity2的布局界面中我创建了一个id为imageView的组件,通过它绑定监听实现跳转但是这里有一个大问题,页面每原创 2022-04-22 11:09:20 · 3193 阅读 · 0 评论 -
『Android基础入门』:如何为组件添加响应
在jaVa文件中获取组件d可以看到在x文件里,每一个组件部可以设置id属性,这是唯一能区分每一个组件的标志属性原创 2022-04-22 11:05:33 · 394 阅读 · 0 评论 -
『Android基础入门』小功能:如何实现走马灯的效果
为了增加自己学习Android的兴趣(上课教的都是些基础的组件与属性,也当时扩展学习),也为期末的课程设计做准备,我在网上学习一些好玩的Android效果,并做记录分享在笔记里,大家一起学习一起进步鸭😆首先我们要明析TextView有哪些属性(基本的就不记录了)singleLine:内容单行显示focusable:是否可以获取焦点:用于控制视图在触摸状态下是否可以聚焦ellipsize:在哪里省略文本:字幕动画重复次数。原创 2022-03-18 12:31:35 · 4738 阅读 · 0 评论 -
【Android】Android与UnityAR通信(3)(随手记)
unity导出作为安卓项目中的库来使用在unity中勾选然后export打开一个现有的,取消gradle的下载,在Project Structure中设置自己下好了的gradle版本,如下是我的版本在gradle.properties里添加如下代码找不到NDKLocation specified by ndk.dir (D:\AndroidTool\TEMP\android-ndk-r16b) did not contain a valid NDK尝试将Unity中AR项目导入到AS解决方案:1原创 2022-03-31 23:44:46 · 5211 阅读 · 0 评论 -
『Android』Unity与安卓通信2(图文详细)
创建一个Android Library的Module,一定要更改一下左边的选项,因为as默认是选择Phone&Tablet,取一个名字unitytoandroidlib在Module里新建一个java文件,取名为Test在Test.class里编写如下代码3.Rebuild Project这一次我们是在创建的unitytoandroidlib下生成了aar文件在Assets文件夹下,创建一个Android文件夹,将在as中build出来的aar文件拖到Android文件夹下,如图所示编写一个C#脚本,取原创 2022-03-24 16:36:58 · 7105 阅读 · 0 评论 -
『Android』Android与Unity通信【图文详细】
我将其更名为unitytoandroid记住选择的API等级,在unity中会用到,如图我用的是API21,Android5.0创建好后,as默认打开是在Android结构下我们将其切换到Project结构目录下导入unity的jar包在unity的安装目录下找到classes.jar文件,并将其复制到as的libs文件下右键classes.jar,选择add as library,点击ok,完成classes.jar文件的导入在MainActivity中编写通信代码,如果显示没有UnityPlayerAc原创 2022-03-17 16:59:46 · 9173 阅读 · 3 评论