自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 问答 (1)
  • 收藏
  • 关注

原创 HarmonyOS入门-ArkTS学习(一)

TypeScript定义类的方式和Kotlin一样//kotlin//实例化${this} } //实例化 和Java一样,需要使用new关键字 let p = new Person("张三" , 18)} } //实例化 和Java一样,需要使用new关键字 let p = new Person("张三" , 18)${this} } //实例化 和Java一样,需要使用new关键字 let p = new Person("张三" , 18)

2024-04-03 09:01:43 911

原创 仿京东拼多多商品分类页-(RecyclerView悬浮头部实现、xml绘制ItemDecoration)

做过的功能一定要总结,因为,过段时间你就忘记了哈哈哈最近在做功能分类页功能,我看了下,这不和我之前做的美团购物车功能差不多么,然后就再看了遍之前写的文章,并看了下底下的评论,不得不说,当时实现的方式确实复杂,搞得我都有点懵,所以就打算优化下当时实现的方式。其实主要还是ItemDecoration相关的内容,相比较Android购物车效果实现(RecyclerView悬浮头部实现)

2023-11-13 15:41:27 965

原创 TypeAdapter处理Gson解析,null值替换为““,null值替换为[]

使用TypeAdapter统一处理后端接口String字段传null的情况,将其转为"";集合字段传null,将其转为[]的实现

2022-06-15 16:15:38 1629

原创 AndroidID、IMEI、OAID获取

前言因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息手机运营商获取AndroidID、IMEI、OAID获取地理位置信息经纬度获取公网IP地址获取:移动网络IP、Wifi IP屏幕相关信息:密度、物理尺寸获取BuildConfig获取的一系列基础信息UA、网络状态…等持续更新1. AndroidID获取1.1 所需权限不需要任何权限1.2 获取方法private fun getAndroidID() {

2021-11-24 17:13:09 34572 13

原创 MQTT在Android端的使用详解以及MQTT服务器搭建、Paho客户端使用

前言最近的项目中使用了MQTT来接收后端推送过来的一些数据,这篇文章来介绍下Android端如何集成使用,关于MQTT相关介绍将不再阐述。由于光写代码不实践的接收下数据很难验证我们写的是否正确,所以我将简单介绍下如何配置个MQTT服务端,并使用工具来发送数据到服务端,使得手机端能接收到数据。话不多说直接看。1. MQTT服务器配置1.1 下载EMQX下载地址1.2 启动EXMX在解压后的bin目录下打开cmd命令,输入emqx.cmd start即可启动。如果你在启动时遇到coul

2021-03-10 10:44:53 22586 30

原创 Android购物车效果实现(RecyclerView悬浮头部实现)

刚开始看购物车效果觉得挺复杂,但是把这个功能拆开来一步一步实现会发现并不难,其实就涉及到:ItemDecoration的绘制、recyclerview的滑动监听、贝塞尔曲线和属性动画相关内容,剩下的就是RecyclerView滑动和点击时左右两个列表联动的相关逻辑。复杂的东西拆开来看就简单多了,下面我将一步一步带你来实现购物车效果。效果图实现步骤1. 数据项格式open class ProductItemParent { //记录当前类所选的商品数量 var typeSele.

2021-01-07 17:03:21 8000 13

原创 Android仿微信朋友圈发布动态

Android仿朋友圈发布动态有一年没发表文章了,语言都从java换为kotlin了。最近还是做了不少东西的,后面再慢慢更新吧,还是代码能带给人快乐,感情什么的滚一边去吧1. 效果图2. 实现思路最终目标:没有数据时,显示加号布局,选择图片达到最大值时,加号布局隐藏,当删掉一张图片后,加号布局又显示出来里面用到的图片选择框架是知乎的matisse,图片加载是glide,权限申请是permissionx,具体的使用就不详细说明了,若有需要日后再单独出篇文章。这里主要讲图片选择后recy

2020-11-09 10:36:22 4060 6

原创 HarmonyOS入门-环境及项目搭建

鸿蒙未来不知道会怎么样,但多学点对于自己是多一个机会。不焦虑,别看那些营销卖课公众号文章,跟着自己的节奏慢慢学习就好。

2024-03-21 11:46:37 707

原创 2023年度总结,是一年的终点,也是新的起点

说实话,挺痛恨CSDN的,因为上面太多的转载和复制粘贴的垃圾文章了,而且还有很多会员或者付费可见的文章,付费不可怕,可怕的就是那种解决常规bug或者没啥系统性编排的文章还要付费,更可怕的是各种开源的东西,竟然下载资源还要各种币,平台和有些用户真的是想钱想疯了。这点我很佩服郭神的原创文章,因为很浅显易懂,难度循序渐进。

2023-12-29 16:00:53 798

原创 Direct local .aar file dependencies are not supported when building an AAR.

起因:项目中含有视频播放功能,使用的是GSYVideoPlayer,因为公司网络问题经常依赖添加不了,所以将关于它的aar包全部下载下来直接本地依赖。因为多个业务都可能涉及视频播放功能,为了复用,就想着将视频播放的功能提取出来,通过创建了视频module,并在该module内,将aar包放入lib里,添加了依赖,在该module里面写了相关的业务,编译都没问题,但是一次Rebuild 项目时,报了如题目所示的错误,打包出的release版本也会报错。

2023-04-21 14:45:19 678

原创 Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager

在最近创建新项目时遇到如题的错误,在重新删除build tools 31版本后还是报错,其实不需要将SDK构建工具从31降为30或更改编译SDK版本主要问题是SDK build tools31 缺少两个文件dx.batdx.jar解决方案:这两个文件在文件位置被命名为了d8,因此将其名称更改为dx即可在下面的位置找到d8.bat文件,将其更改为dx.batC:\Users\dell\AppData\Local\Android\Sdk\build-tools\31.0.0在下面的文职找到

2022-01-20 15:36:21 2979

原创 Android Build类获取设备信息

前言因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息手机运营商获取AndroidID、IMEI、OAID获取地理位置信息经纬度获取公网IP地址获取:移动网络IP、Wifi IPBuild类获取相关设备信息屏幕相关信息:密度、物理尺寸获取BuildConfig获取的一系列基础信息UA、网络状态…等持续更新我们需要的一些设备信息,其实可以直接从Build类中获取。Build类介绍:Information abo

2021-12-11 11:02:38 3038

原创 公网IP地址获取:移动网络IP、Wifi IP

前言因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息手机运营商获取AndroidID、IMEI、OAID获取地理位置信息经纬度获取公网IP地址获取:移动网络IP、Wifi IP屏幕相关信息:密度、物理尺寸获取BuildConfig获取的一系列基础信息UA、网络状态…等持续更新1. 移动流量IP地址获取通过NetworkInterface的getNetworkInterfaces()方

2021-11-30 16:56:45 8662

原创 Android模糊搜索框实现

1. 前言最近项目中需要做模糊搜索的功能,刚开始觉得很难,但仔细想想也没什么,因为具体的模糊搜索部分是后端提供接口,而我们需要做的就是当搜索框内容发生变化时就执行一次搜索功能而已。2. 效果图可以看到文本框在输入时实时进行搜索当搜索没有结果时,底部的结果展示直接隐藏掉茅台并不坚挺…3. 思路搜索框部分使用EditText,通过addTextChangedListener方法来实现对其的监听接口部分,这里我使用百度的接口,简单的通过Retrofit2来实现网络请求模糊

2021-08-03 10:09:03 5089 1

原创 Android原生获取经纬度位置信息

前言因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息手机运营商获取OAID、IMEI、AndroidID获取地理位置信息经纬度获取公网IP地址获取:移动网络IP、Wifi IP屏幕相关信息:密度、物理尺寸获取BuildConfig获取的一系列基础信息UA、网络状态…等持续更新1. 基础学习在介绍之前,先讲一些获取经纬度信息相关的基础知识1.1 LocationManager位置管

2021-07-22 23:20:30 6074 5

原创 kotlin expecting a top leveleclaration

在一次使用别的项目的工具类时,一共导入了两个工具类,只使用了其中的一个,第一次运行没什么问题, 第二次编译的时候就报此错误,最后通过把这两个工具类的上方的包名去掉解决了问题...

2021-07-21 15:56:05 1331

原创 Android获取手机运营商名称

前言因为项目中经常会遇到要上传一系列设备信息的功能,为了方便使用,所以就拆分成以下系列文章来单独介绍如何获取各类设备信息手机运营商获取OAID、IMEI、AndroidID获取地理位置信息经纬度获取公网IP地址获取:移动网络IP、Wifi IP屏幕相关信息:密度、物理尺寸获取BuildConfig获取的一系列基础信息UA、网络状态…等持续更新为了不产生歧义搞混淆,先提前说明下移动和中国移动是两码事,移动客户并不是指中国移动的客户。1. 概念了解MCC

2021-07-12 23:02:13 15890 3

原创 ARouter there′s no route matched

在使用ARouter框架过程中遇到了这个问题,搜索了一下,网上大部分都是说是以下问题导致的path路径的没写对,即最少需要两层:/groupname/Activity,且不同module的groupname名不同用于跳转的module都需要添加依赖,且该模块需要被主APP模块依赖看了下,我这两个都没有问题,但还是跳转时找不到页面,最终解决是通过如下操作因为我的项目是使用Kotlin写的,而不是原先的Java项目,而我module里添加的依赖还是如下方式,虽然不会报错,但是会出现找不到页面的状况

2021-07-06 17:16:14 240

原创 GridItemDecoration实现网格布局Item等间距分割

1. 想要的效果左右两列和上下两行ItemView贴边,与RecyclerView边界之间没有间隙,如图所示2. ItemView平分实现在设置ItemView之间的间隙之前,我们先想想如何使得ItemView平分行我们的ItemView的布局如下当最外层布局为固定宽度或者为wrap_content时,Recyclerview的效果如下:wrap_content:100dp:当itemView的最外层宽度为match_parent时,效果如下:所以我们想要使得ItemView平分

2021-05-21 09:16:04 1908

原创 Android-TextView实现垂直滚动跑马灯效果

原先做过字体滚动,用的是别人写好的东西,但动画部分没看懂写得有些复杂,而且封装的也不完整,调用起来比较麻烦,最近又需要此效果,就干脆自己写个,用到的还是TextSwitcher,深入学习一下。话不多说,先看看效果图:1. ViewSwitcher先简单介绍下ViewSwitcher,毕竟TextSwitcher继承自ViewSwitcher。ViewSwitcher继承自FrameLayout,可以将多个View叠在一起,在切换View时表现出动画效果常见XML属性XML属性说明.

2021-05-13 09:31:32 5245 3

原创 安卓版本号及版本名称对照表

因为经常要涉及到版本号的判断,经常记不住特来记录下供下次查阅版本号判断代码:if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q){ //>=安卓10的逻辑部分 }API 版本号版本名称英文名称194.4KITKAT204.4KITKAT_WATCH215.0LOLLIPOP225.1LOLLIPOP_MR1236.0M247.0N257.1N

2021-03-22 09:31:53 4414

原创 Retrofit动态地址使用注解@Path ,路径中的/变为%2F

遇到的问题平时使用Retrofit来实现动态地址时,用的是@Url注解,但是需要传地址时连带baseUrl一起给出,这次使用@Path注解来实现,base地址不变,只需改变后边的地址。@Multipart@POST("/{param}")open fun uploadFile(@Path("param") url: String,@Part multipartBody: MultipartBody.Part): Call<ResponseBody>使用时会发现访问的地址变为了http

2021-03-08 13:54:15 2661

原创 Unresolved reference: viewModels,viewModels()方法找不到

遇到的问题最近在学习LiveData和ViewModel,跟着官网敲,碰到了以下情况private val model: NameViewModel by viewModels()这里的viewModels()爆红已经添加的依赖如下implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0'implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.0'解

2021-02-24 17:20:07 3623 3

原创 AndroidStudio:Image not loaded Try to open it externally to fix format problem

遇到的问题一次在更改功能时,突然看见xml文件爆红,显示图片找不到,自定义的View控件也找不到,仔细看了下,好好的把我的View代码都变成一堆不知道什么东西的配置,且我找图片发现图片存在为什么会找不到,在Androidstudio中打开图片显示Image not loaded Try to open it externally to fix format problem解决办法看英文意思是:图像未加载尝试从外部打开以修复格式问题,我在我的电脑里打开图片正常显示没有问题呀,网上的评论说是将图片修改为

2021-02-03 15:48:41 7959 5

原创 boolean java.lang.String.equals(java.lang.Object)‘ on a null object reference

遇到的问题Attempt to invoke virtual method ‘boolean java.lang.String.equals(java.lang.Object)’ on a null object reference解决办法可能是布局出错了,我是将写成了导致大小写导致的出错

2021-02-03 15:24:22 660 1

原创 Filterable实现Recyclerview筛选功能

原先碰到筛选这种功能时,后端的接口都会让上传一个字段,根据字段来返回相应的数据。后来一次和别人对接时,接口直接返回全部数据,而且还要实现筛选功能。我…我说不就是一条sql语句的事,改接口多方便,我苦心劝导,然后被怼回来,切,不就是筛选嘛,求人不如自己搞。1. 效果图2. 思路既然是筛选,那就少不了比较。也没有什么好的办法,无非就是循环对比,然后将适配器进行数据更新。页面刷新即可。但筛选的调用要方便,怎么比较才方便我们调用呢?偶然间看到了Filterable,使Adapter继承自该接口,实现ge.

2021-02-01 11:15:37 849

原创 自定义IndicatorView和ViewPager2+Fragment联动实现

最近又遇到两个界面切换和底部圆点联动的设计,第一眼看到想到的就是ViewPager2+Fragment的联动,那底部的小圆点该怎么联动呢?后来找找,发现去年就写了草稿,是看完鸿洋的文章准备总结一下的,不过是java版本,里面用到的是ViewPager+ImageView使用PagerAdapter适配器和小圆点实现的联动。现在来更改一下,使用ViewPager2+Fragment使用FragmentStateAdapter适配器和小圆点实现联动。本片主要讲自定义IndicatorView并实现和View.

2020-11-25 16:32:38 1023 2

原创 RecyclerView实现单选和多选功能

又来更新小功能了,项目中经常会遇到单选多选功能,总是草草的写下没有系统总结,今天来记录一下。这篇是用RecyclerView实现单选多选功能,下一篇再来讲用RecyclerView实现折叠效果的树形结构。1. 效果图2. RecyclerView实现单选功能2.1 实现思路itemView布局内的字体颜色和背景使用selector来控制,所以当RecyclerView的itemView的isSelect属性为true时,该布局内的颜色和字体会变为选中状态下的颜色。当点击新的itemVie.

2020-11-18 14:17:09 2949

原创 手把手教你本地如何查看Android源码

原先我们看源码无非谷歌提供的网址 ,要不就是国内的网址 ,谷歌的被墙了,在线的不方便,下面我将介绍下如何在本地查看Android源码。查看源码我们需要先安装一个Source Insight软件,该软件需要破解,具体咋破解可参照文章Source Insight 4.0 完美破解安装完毕打开后,我们需要导入源码步骤:1、点击Project–New Project2、点击Browse选择自己源码所在的目录有人会说我没下载过源码呀,只要你用AndroidStudio那就有份源码,你在Androi.

2020-05-28 16:00:33 4701

原创 AndroidStudio中Module创建及项目变Module导入其它项目步骤

AndroidStudio中Module创建及项目变Module导入其它项目步骤记录1、创建module2、添加依赖3、将已有项目变为module导入到其他项目中将已有项目更改将旧项目作为module导入4、遇到的一些问题总结因为经常会写各种各样的功能Demo,每次项目中使用都是打开Demo,然后将相应的功能复制粘贴过去,很是麻烦,要是将Demo项目变为module,然后我们项目中导入该mod...

2019-12-12 15:38:20 2905 2

原创 Android事件分发机制详解

距离上篇文章有半个月,感觉有些荒度,不过这篇文章写下来确实是用了半个月,确实是小白,所以看了好多文章才算是搞懂了事件分发。这篇文章更像是总结,把别人的东西比较清晰易懂的点自己记录下来,再通过自己的实践来了解事件分发的过程,废话不多说,带你看看小白是怎么一步步了解事件分发的。1. 什么是事件要了解事件分发,那我们先说说什么是事件,其实这里的事件指的就是点击事件,当用户触摸屏幕的时候,将会产生...

2019-07-31 09:59:06 317

原创 Retrofit使用拦截器添加Cookie

1. Cookie介绍我个人理解:Cookie其实就是记录用户的一些信息、状态行为等。有这样一种场景,用户在登录成功后,服务端会返回Cookie,里面包含用户的登陆状态信息等,这样用户在访问自己的收藏列表时,加上这个Cookie,那么就可直接获取到文章列表,如果没有Cookie,那服务端怎么知道你是要获取哪个用户的文章列表呢。在浏览器上,返回的Cookie会保存在浏览器中,在下次访问时会自动加...

2019-07-10 09:23:08 1320 3

原创 Retrofit使用详解-注解介绍

关于Retrofit的讲解,我将写下面系列篇文章进行总结:Get和Post请求的基本使用上传图片下载文件添加拦截器…(和RxJava联合使用、RxJava+Retrofit+OkHttp简单封装、统一错误处理)讲解之前我必须先安利个网站模客,在学习Retrofit之前,各种网络请求如果想学习的话就必须有接口才能访问,Get请求还好说,但遇到Post请求,自己发送的是啥也不清楚,...

2019-07-09 09:33:13 1380

原创 ViewPager两种方式实现无限轮播

给自己的忠告:虽然轮子很好用,但是使用轮子的前提是:如果不去封装一些复杂的功能,自己会用最基本的方法写一个,不然再好的轮子那也是别人的,当自己项目遇到和轮子不一样的地方,那就只能束手无策或者改人家的源码,当然能看懂轮子的封装思想自己学以致用并且能够很轻松的更改源码那是最好不过的了。1. 实现思路两种方案:(1)采用Adapter内的getCount()方法返回Integer.MAX_VA...

2019-06-19 09:11:08 9711 1

原创 NestedScrollView嵌套LinearLayout无法滑动到底部问题解决

遇到的问题:最近痴迷MaterialDesign控件的学习,可以说CoordinatorLayout+AppBarLayout+CollapsingToolbarLayout+NestedScrollView是标配,我们都知道NestedScrollView和ScrollView只能有一个直接子布局,所以当想展示多个View时就会想到用LinearLayout或其他布局嵌套的方式来实现,但实际使...

2019-05-25 16:14:41 3958 5

原创 Android右侧边栏滚动选择

小白教你-Android右侧边栏滚动选择涉及到的内容:首先会ListView或RecyclerView的多布局。自定义View右侧拼音列表,简单地绘制并设立监听事件等。会使用pinyin4.jar第三方包来识别汉字的首字母(单独处理重庆多音问题)。将全部的城市列表转化为{A a开头城市名…,B b开头城市名…}的格式,这个数据转化是重点**!!!**将第三步获取的数...

2019-05-14 11:35:39 652 1

原创 自定义ItemDecoration分割线的高度、颜色、偏移,看完这个你就懂了

想到分割线,原先一直是在item的布局中直接加入,在adapter中进行判断,若是最后一个子项则将分割线隐藏,感觉太小儿科了,今天来好好研究这个ItemDecoration的使用。本来周末要写这篇文章的,但奈何只有单休,一偷懒就没写,今天给补上,毕业工作半年后的第一篇笔记,一定详细,不对的地方望指教,轻点打我…文章参考自RecyclerView 之 ItemDecoration 讲解及高级特性实...

2019-03-18 10:19:11 5242 2

空空如也

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

TA关注的人

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