自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

步行者

从头开始,记录每一个脚印

  • 博客(77)
  • 资源 (10)
  • 收藏
  • 关注

原创 Android textview展示富文本内容

if(!} if(!if(null!} } /*** 还原为原来的颜色if(null!} else {} } /*** 解析style属性");if(null!if(null!

2024-01-01 16:31:03 831

原创 蒙HarmonyOS从零实现类微信app效果第二篇,我的+发现页面实现

本着不拖更的原则,今天上新了,今天实现了类微信app的发现页和我的页面。先看效果。效果是不是看着还不错。其实这两个页面功能实现还是比较简单的,接下来还是老规矩,先进行页面的拆分和代码实现,然后进行相关我认为比较重要的知识点的说明。

2023-11-16 00:31:17 751 2

原创 鸿蒙HarmonyOS从零实现类微信app效果第一篇,基础界面搭建

最近鸿蒙HarmonyOS开发相关的消息非常的火,传言华为系手机后续将不再支持原生Android应用,所以对于原Android应用开发对应的Harmony版本也被一系列大厂提上了日程。作为一个名义上的移动端开发工程师((⊙o⊙)…,最近写python多过Android),当人不让要来学习一波。本次的学习计划是实现一个类微信app效果,计划将常规的app效果都实现一下,以便后续如果需要写Harmony应用,可以直接上手。由于我本人有多年的开发经验和多种语言的开发经验,对于Javascript和。

2023-11-14 22:43:09 760

原创 Spannable配合AnimationDrawable实现TextView中展示Gif图片

辣的原理解释,反正大家也不爱看,所以直接上代码了。

2023-08-13 00:11:28 353

原创 ViewPager一个卡片层叠效果,记录下计算算法

本身没有难度,记录下算法和阴影数值而已。

2023-05-30 10:01:47 296

原创 Flutter多版本管理工具fvm使用

由于我自己常用的系统是 或者系统,所以这里指针对这两个系统进行说明。2、使用命令安装卸载命令:如果不使用上面的配置,则默认使用效果如下安装指定的sdk版本查看所有已经安装的sdk5、使用配置管理全局sdk版本在执行完上面的命令之后,会在.fvm下生成一个default文件夹。可以将这个目录下配置为flutter的环境变量,后续可以通过fvm use命令结合fvm global 命令直接更改flutter使用版本了。最后让环境变成更改生效...

2022-07-12 19:54:37 3399 1

原创 Flutter采坑系列之:Failed to apply plugin class ‘FlutterPlugin‘.

最近由于又想重新研究下Flutter相关技能,由于android studio升级到了最新版,创建项目默认使用 id 'com.android.library' version '7.2.0' apply falsemodule依赖参照官方文档进行:// Include the host app project.include ':app' // assumed existing contentsetBinding(new Bin

2022-05-23 20:52:03 1502

原创 JetpackCompose快速实现底部导航栏,BottomNavigation使用

首先放上一个效果,这里需要特别鸣谢@扔物线大佬,因为我这边使用的颜色,图片都是从大佬的项目中直接拿过来的。原谅我是个白嫖怪~在@扔物线大佬的WeCompose项目中,对于底部导航栏的实现是使用Row + Column组合的方式实现的。但是我今天在阅读android developer文件的jetpack compose 指南的时候,发现官方个实现了Material Design的BottomNavigation效果,大致看了下文档,发现使用也是很简单。对于熟悉Flutter#BottomNavigati.

2021-12-24 01:43:57 6533

原创 彻底搞懂RecyclerView,告别职业焦虑emo(上篇)

持续学习,告别职业焦虑~每次一个告别emo小技巧,今天带来RecyclerView#LayoutManager。相信大家对于LayoutManager的使用肯定都非常熟悉了,如果还不熟悉或者不知道这个是干啥的,本篇文章可能也就不适合你了。...

2021-11-17 20:31:45 435

原创 为ViewGroup添加入场动画,LayoutAnimation使用概述

本篇文章来一点好玩的效果。还记得之前的视图动画效果吗?之前我们控制的效果,都是针对单个视图,如果想要对一组视图使用相同的动画效果,这个时候,就需要使用到。为了让大家看的时候更清晰效果,所以视频做了慢放处理,可以看到是有回弹会效果的,还是比较炫酷的。方式,我们可能希望沿着对角线方向实现动画效果,而不是一个个来。则需要进行自定义动画的执行方向。使用上和之前使用没有任何区别。动画执行顺序还是区别很明显的。可以看到动画的执行顺序是顺序执行的,中,都是顺序执行的,但是如果现在是。实现对角线方向动画效果的代码。

2021-11-09 00:00:49 2440

原创 使用ViewDragHelper实现平滑拖动动画

使用十分简单,基本上就是固定的使用套路。因为是一个拖动、移动的辅助类,一般情况下,我们会使用在自定义之中。使用方法创建一个对象在中的事件拦截使用的方法进行*事件接管*。重写方法,在其中处理刷新实现的方法,进行逻辑处理操作。下面介绍下常用的方法。

2021-11-08 23:21:44 1748

原创 使用scrollTo、scrollBy、Scroller实现滚动动画

在上一节讲解了layout、offset、的使用,本节说明scrollTo、scrollBy、Scroller。

2021-11-01 21:33:25 4673 2

原创 使用Layout、offset、layoutParam实现位移动画

对于常见滑动效果通过两篇文章说明。本节将说明layout\offset\。

2021-10-31 19:58:49 1212

原创 插值器和估值器概述与使用

接下来我们实现一个如下的曲线下面是实现代码,从上面系统的实现,基本上可以知道,核心就是要实现接口。在中书写计算算法。其实上面的图上,算法已经列出来了,只需要写到这个方法即可。0F -> {介绍几个很好用的辅助网站,可以帮我们实现事半功倍的效果。插值器在线查看效果网站曲线效果在线演示网站贝塞尔曲线在线调试easings是一个开源的插值器算法网站,涵盖了各种各样的插值器算法,绝大部分的物理场景都能找到。

2021-10-31 19:31:27 1672

原创 视图动画进阶:对Animation进行定义扩展

矩阵相乘最重要的方法是一般矩阵乘积。它只有在第一个矩阵的列数(column)和第二个矩阵的行数(row)相同时才有意义 [1]。一般单指矩阵乘积时,指的便是一般矩阵乘积。设A为 的矩阵,B为 的矩阵,那么称 的矩阵C为矩阵A与B的乘积,记作 ,其中矩阵C中的第 行第 列元素可以表示为: [1]如下所示:举个例子🌰大家可以思考下下面这个结果是怎么出来的。其实根据上面的公式(A的行xB的列)就不难得到好了,相信矩阵乘法你搞懂了。

2021-10-29 23:09:21 217

原创 Java设计模式之策略模式

概念策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。策略模式使用场景:当你的程序中面临着不同的功能策略耦合在业务之中,而需要大量的if-else判断去归属不同算法执行不同业务行为的时候,其实就应该思考使用策略模式将不同算法玻璃开来,统一由环境角色控制算法分发。这样做算法分离的好处就是个别算法的增加删除将不会影响到整体业务逻辑修改。一个比较典型的适用策略模式的就是计算器,加减乘除每一种其实都可以理解成一种算法,也就是对抽象策略的

2021-10-26 23:19:59 296 2

原创 可能你的EventBus使用并不正确,是时候真正搞懂EventBus了(下)

在上一篇文章中可能你的EventBus使用并不正确,是时候真正搞懂EventBus了(上),我们说了使用apt方式进行优化使用eventbus,并对EventBus#register和EventBus#unRegister方法进行了说明。对这块内容不熟悉的,可以先看下在继续看下面的内容。本节内容将讲解剩下的内容,包括了EventBus#post、粘性事件等。1、EventBus#post(Object event)之前说了,register的时候,会将查找到的添加的注解的方法进行查找,并保存。这节将讲

2021-10-25 21:26:42 611

原创 可能你的EventBus使用并不正确,是时候真正搞懂EventBus了(上)

EventBus作为Android开发中使用频率相当高的项目,帮助我们简化了很多复杂场景下的数据传递,当然也是Android初中高级面试中必不可少的问题。但是对于EventBus使用,可能绝大多数人并没有正确的使用它,今天就让我来带大家正确的使用它,并带大家从源代码层面真正搞懂EventBus。EventBus项目地址: https://github.com/greenrobot/EventBus1、EventBus使用第一步:注册//注册EventBus.getDefault().reg

2021-10-23 12:42:18 2786

原创 在Android中使用Netty进行通讯,附带服务端代码

NettyNetty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。Netty 是一个广泛使用的 Java 网络编程框架(Netty 在 2011 年获得了Duke’s Choice Award,见https://www.java.net/dukeschoice/2011)。它活跃和成长于用户社区,像大型公司 Facebook 和 Instagram 以及流行 开源项目如 Infinispan, HornetQ, Vert.x, Apach

2021-10-19 22:24:05 1550 6

原创 TextView 输入内容中文过滤,InputFilter使用和简单说明

写这篇文章完全是因为同事下午实现的一个功能,功能描述如下:输入框内容如果为空,则不能输入0开始,否则是可以正常输入0,删除0之前的内容之后,0是可以正常展示的。同事使用TextWatcher实现,貌似后面实现了这个功能,但是看了下代码很复杂。之前在阅读TextView源码的时候,看到一个长度过滤LengthInputFilter,于是乎就想到了用InputFilter实现岂不是非常简单。所以就有了下面的两行代码了。inputSearch.filters = arrayOf(InputFilter

2021-10-18 20:26:42 569

原创 写给移动开发者的Vuejs快速入门指北

1、nodeJs本文是团队内一次分享的时候写的,整体是一个快速索引系列。1-1、Node安装和npm介绍NodeJs官方网站: https://nodejs.org/en/NodeJs中文网站: http://nodejs.cn/安装完成之后检查是否安装成功> node -v或者> npm -v非浏览器环境执行js> node xxx.js常用的npm命令> #输出当前版本> npm -v> #升级当前的npm版本> np

2021-10-15 22:52:49 352

原创 NodeJs快速使用(二)、模块概念、自定义模块、常用模块、三方模块安装、fs模块

模块概念、自定义模块、常用模块、三方模块1、创建自定义模块2、npm安装三方模块3、fs模块为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。1、创建自定义模块使用exports方式exports.reqest = function(){ console.log(

2021-09-04 18:21:01 400 2

原创 NodeJs快速使用(一)、安装以及Http、Url模块使用

NodeJs安装使用以及Http、Url模块使用1、NodeJs安装2、npm和node常用命令3、Nodejs中`http`模块4、nodejs的`url`模块1、NodeJs安装可以直接访问NodeJs的网站下载最新的安装包,直接进行安装。NodeJs官方网站: https://nodejs.org/en/NodeJs中文网站: http://nodejs.cn/这边包含了最新版本和稳定版,自行选择安装即可。安装完成之后,输入命令> node -v或者> npm -

2021-09-04 16:17:04 3043

原创 TypeScript快速入门教程(四)、联合类型 & 交叉类型 & 类型保护

联合类型 & 交叉类型 & 类型守护1、联合类型2、交叉类型3、 类型保护联合类型和交叉类型其实在生活中是一个很常见的案例。黄瓜,你说他是水果还是蔬菜呢?番茄是属于水果还是属于蔬菜呢?那么水果黄瓜呢?其实我们单纯看黄瓜和番茄的话,其实既可以算是水果,也能算是蔬菜,其实就是场景决定的,我要做菜,它就是蔬菜,拿来生吃,就是水果呗。基于以上的知识点,我们可以这样理解:联合类型, 它的类型既可以是 A,也可以是B,伪代码表示的话,就是 A | B交叉类型, 它的类型包含A的特点

2021-09-03 00:02:10 457

原创 TypeScript快速入门教程(三)、函数、范型使用

函数、范型使用1、函数1-1、函数定义1-2、可选参数1-3、剩余参数1-4、this & 箭头函数2、范型2-1、范型基本使用2-2、接口中使用范型1、函数函数的类型主要由参数类型和返回值组成1-1、函数定义function 方法名(): 返回值 { //方法体}对于函数,常见的几种定义方式命名定义function namedAdd(x: number, y: number): number { return x + y}匿名定义let anon

2021-09-02 18:43:36 464

原创 TypeScript快速入门教程(二)、面向对象知识(接口、类、抽象类)

面向对象知识(接口、类、抽象类)接口1-1、 接口定义1-2、使用接口作为参数预定义,类似type使用1-3、结合类使用, implements类2-1、类正常定义2-2、类正常定义2-3、类的构造方法抽象类这次的知识点和Java、c#语法非常相似,所以直接快速过。接口1-1、 接口定义接口定义语法格式为interface 接口名称 {}interface Girl { name: string; //定义属性 age: number; //同上 bust: numb

2021-09-01 00:13:34 448

原创 TypeScript快速入门教程(一)、基础类型和变量声明

基础类型和变量声明1、基础类型2、变量声明目前其实移动端与前端的界限在慢慢的模糊,很多公司已经将移动端和前端整体统称为大前端了,而整体的技术栈和技术人员,也在逐步趋于全面和面对整个大前端技术栈。虽然技术终究是细分的,但是了解更多知识,有一个完整的大前端知识体系,也能够在大前端整体技术突进中脱颖而出,达到意想不到的效果。今天将带来TypeScript快速学习入门教程第一节,本身我是做Android开发的,这系列文章也是作为一个我学习的笔记。????希望前端大佬看到勿喷!!1、基础类型2、变量声明参考

2021-08-30 22:36:43 371

原创 仿蜻蜓FM详情页嵌套滑动效果(IOS版本效果)

闲来无事,看到蜻蜓FM的详情页面效果挺好玩的,于是乎仿一下,因为IOS版本和Android版本的效果不一致,看了下Android实现上更加复杂一点,所以先实现了IOS的方式,效果上大致的功能效果都有了,细节没有打磨,终究只是demo,为了探究滑动处理方式。老规矩,先上图,看一下效果。不知道看了效果之后,你还有没有看下去的兴趣????????????实现思路一看到这种折叠效果,我第一感觉应该是使用BottomSheetBehavior,当然我本次使用也是使用的这个。对于BottomSheetBeh

2021-08-25 23:42:45 536 4

原创 Android中使用Rabbitmq小记

最近项目中需要使用的小工具,牵扯到后台需要前后台做消息通信,和web端同事简单比较了下,决定使用MQ进行通讯,之前App项目中使用MQTT比较多,对于Rabbitmq只是简单的知道是一个后台经常用到的异步操作队列,当然既然要用,咱也不虚,简单了解了下,很快实现了功能,用起来挺方便的,这里简单作一下笔记。望后端大佬勿喷!~MQ文档地址: https://www.rabbitmq.com/tutorials/tutorial-one-java.htmlAndroid项目中引入Rabbitmq引入项目还是

2021-08-25 22:41:41 2443

原创 Android自定义软键盘

自定义软键盘实现自定义软键盘1、通过xml定义键盘2、将xml文件与keyboardview绑定起来3、处理点击事件onKey附赠一些实用的效果处理1、点击空白处,关闭软键盘,如果有内容,出发内容点击,并关系软键盘,如果是滑动,则只关闭软键盘2、切换软键盘panel,很简单的实现还是咱们的老规矩,先放最终效果图 ????????????实现自定义软键盘需要实现一个软键盘很简单,只需要很简单的3步1、通过xml文件,定义出来键盘结构2、将定义好的键盘结构与KeyboardView绑定起来3、实

2021-08-21 17:25:14 4228 4

原创 Flutter自定义Appbar搜索框

首先看一下实现本次实现的效果。本来想直接偷懒从flutter pub上找个能用的使用起来,但是看了下发现都与目前ui效果相差很大,于是乎决定自己实现一个。整体的话比较简单,本来也是为了练手而做的。为了方便处理statusbar的高度适配,于是乎直接依托于Appbar进行了实现,这样就可以不用处理状态栏适配了。class _HotWidgetState extends State<HotWidget> { @override Widget build(BuildContext c

2021-06-12 16:19:15 2626 14

原创 视图动画概述与使用

scale标签和ScaleAnimation用来实现缩放视图动画属性名称描述控件动画开始时候,在x轴缩放比例,1.0表示自身无变化,0.5表示缩小了1倍,2表示扩大了一倍动画结束时候,相对于控件自身的缩放比例动画开始时候,在y轴相对控件自身的缩放比例动画结束时候,在y轴相对控件自身的缩放比例缩放起始点x轴坐标,支持数值、百分数、百分数p三种格式。(具体介绍见下面介绍)缩放起始点y轴坐标,支持数值、百分数、百分数p三种格式。

2021-05-18 00:34:02 1292 6

原创 实现一个横向无限循环滚动的单行弹幕效果

本期将带领大家实现一个这样的效果,支持无限循环的单行弹幕效果。实现思路分析要实现上面的效果,我们先拆分下实现要素:1、弹幕布局是从屏幕的右侧向左侧滚动,单个弹幕之间的间距是固定的(设计要求)2、弹幕要支持无限滚动,出于性能要求,如果不在屏幕内的,应该移除,不能无限追加到内存里面。拆分完需求要素之后,针对上面的需求要素,做一下思路解答:1、对于滚动和超出屏幕后移除,可以使用动画来实现,动画从屏幕右边开始移动到屏幕左边,监听如果已经动画结束,则remove掉布局。2、无限循环效果,可以.

2021-05-13 23:14:26 1294 10

原创 TextView绘制流程二、BoringLayout深入理解

TextView绘制流程BoringLayoutBoringLayout#isBoringBoringLayout#makeBoringLayout#replaceOrMakeBoringLayout#drawTextLineTextView是android提供的一个文本展示ui控件,同时也是android开发者最先熟悉的Weight组件,可以配合Html和Spannable进行展示文字、展示html、进行高亮处理,还能通过autolink进行email、tel等功能的识别跳转,本篇文章将带你从系统源码的

2021-03-01 15:53:48 529 7

原创 TextView绘制流程

TextView是android提供的一个文本展示ui控件,同时也是android开发者最先熟悉的Weight组件,可以配合Html和Spannable进行展示文字、展示html、进行高亮处理,还能通过autolink进行email、tel等功能的识别跳转,本篇文章将带你从系统源码的角度彻底搞定TextView的绘制流程。TextView的依赖关系TextView本身是一个自定义View控件,所以对于Textview的分析,可以直接按照常用的自定义View绘制流程来分析。onMeasureonL

2021-02-24 14:30:24 1827 8

原创 canvas.drawText理解和FontMetrics文字测量

在ui开发开发中,label文本标签是最长用到的。android中提供了TextView帮我们用来展示文本文字。而android的Canvas也提供了drawText用于帮助我们在自定义view的时候绘制展示文本。先简单看一下这段代码private val paint = Paint(Paint.ANTI_ALIAS_FLAG)init { paint.textSize = 150F paint.style = Paint.Style.FILL_AND_STROKE pain

2021-02-18 15:25:55 641

原创 Android消息机制

文章目录概述基本使用1、在主线程中创建使用handler2、在子线程中创建handler源码分析概述Android的消息机制主要是指Handler运行机制,Handler是作为Android开发者必知必会的一个知识点,也是初中高级面试都会被问到的一个知识点。基本使用1、在主线程中创建使用handlerval handler = object : Handler(Looper.getMainLooper()) { override fun handleMessage(msg: Messag

2021-02-18 10:38:12 61

原创 spannablestring和spannablestringbuilder的使用,实现文字高亮、可点击

TextView除了自身的简单文字展示之外,是可以使用Spanned和Html实现很多个性化的功能的,比如一段文字使用中部分文字颜色高亮、支持点击事件。就可以使用Spanned的方式实现。SpannableString一个最基本的用来封装Spanned的封装类,可以用来使用setSpan增加不同的span状态。spannableString.setSpan( ClickSpan(it.content, it.color, it.clickEvent), 0, spannableStrin

2021-02-06 19:01:08 706

原创 TextView使用Html适配文字颜色(color:““)、文字大小(font-size:14px)、文字权重(font-weight:500)

TextView使用Html适配文字颜色(color:"")、文字大小(font-size:14px)、文字权重(font-weight:500)TextView中提供了Html类,专门用来方便TextView展示Html格式的内容展示,对于常见的标签都做了简单的适配。目前Html中支持解析如下标签:br 换行p 文本段落标签ul 列表标签,一般和li标签一起使用li 列表标签,一般和ul标签一起使用div 用来区分一块区域span 文本标签,用于处理文本样式strong

2021-02-05 16:39:16 1977 4

原创 获取手机上安装的所有浏览器

获取手机上所有安装的浏览器private fun getBrowserList(context: Context): List<ResolveInfo> { val packageManager = context.packageManager val intent = Intent(Intent.ACTION_VIEW) intent.addCategory(Intent.CATEGORY_BROWSABLE) intent.data = Uri.parse

2021-01-22 09:24:10 222

jai所需的jar包

jai所需的jar包

2012-01-09

Jsp帮助文档.chm

Jsp帮助文档.chm Jsp帮助文档.chm Jsp帮助文档.chm

2011-03-25

CSS2.0.chm

CSS2.0.chm CSS2.0.chm CSS2.0.chm CSS2.0.chm

2011-03-25

Core+Java+2+Volume+I+-+Fundamentals%2C+Sev....chm

Core+Java+2+Volume+I+-+Fundamentals%2C+SCore+Java+2+Volume+I+-+Fundamentals%2C+Sev....chmev....chm

2011-03-25

think in java02版

think in java02版 think in java02版 think in java02版

2011-03-24

think in java01版

think in java01版 think in java01版 think in java01版

2011-03-24

免费加密软件_绿色软件

免费加密软件_绿色软件 免费加密软件_绿色软件 免费加密软件_绿色软件

2011-03-24

jdom_1_1_1软件,jdom

jdom_1_1_1软件,jdom jdom_1_1_1软件,jdom

2011-03-24

html网页制作帮助文档

呵呵,把这个和大家分享一下了,希望大家会喜欢,希望对大家有帮助吧。html帮助文档,

2011-03-24

空空如也

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

TA关注的人

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