- 博客(26)
- 资源 (2)
- 收藏
- 关注
原创 Android告别Shape.xml
天下苦shape.xml久已,特别是遇上不靠谱的UI,圆角+背景色+边框,三个属性就能给你折腾出来几百种组合,每个组合都要写对应的shape.xml,太折腾人了!使用解析实现方式是依托于,如果同学不喜欢使用,那么这篇文章就帮不到您了。通过注释,实现布局xml中访问Kotlin代码的能力,通过设置的各种属性值,轻松实现的背景色、圆角、渐变色、边框的功能设置。其中圆角的设置做了比较多的需求适配,所以单独又拆分出了一个方法。注意: 任何View都可以通过该方法实现背景的自定义仓库地址
2023-04-06 15:33:40
449
原创 仿抖音-视频及直播点赞效果
快速实现抖音视频点赞和直播点赞效果.创建图片,设置图片属性:大小,旋转,坐标等。将图片add到ViewGroup中。
2023-04-03 17:42:20
1039
2
原创 Flutter——Expanded
在Android的日常编程中,我们使用LinearLayout时经常会遇到需要使用权重来分配子View的空间占比,那么在Flutter中,我们需要时,该怎么实现呢?源码&简介A widget that expands a child of a [Row], [Column], or [Flex]展开[行],[列]或[Flex]的子代的小部件class Expanded exte...
2019-09-27 14:25:00
547
1
原创 Flutter——Row&Column
1. 简述Row和Column分别是横向布局和纵向布局,对标Android中的LinearLayout <!-- Row --> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:...
2019-09-27 13:04:44
991
原创 Koin实战
对于强大的注解框架,Dagger2的编译特点一直都让我觉得不舒服,强行学完Dagger2的使用和大体原理后,也一直没有将它投入生产中。后来在浏览博客的时候,发现Koin:适用于Kotlin开发人员的实用轻量级依赖注入框架。仅使用功能分辨率编写的纯Kotlin:无代理,无代码生成,无反射!Koin官网这个三无产品一下子就吸引了我,不要998,不要9.8,什么都不要,来试试看~添加依赖当...
2019-09-05 10:38:17
1601
原创 Fragment懒加载——最简方案(LazyBread)
GIF镇楼框架引入在项目根目录的build.gradle文件中添加 allprojects { repositories { maven { url 'https://jitpack.io' } } }app目录下的build.gradle文件中添加dependencies { implementation 'com.github.Martin0207...
2019-05-22 14:30:50
901
2
原创 AOP——Android通过AspectJ实现登录检验
AOP与AspectJ的介绍就不多说。 APP的登录方式,一种像QQ微信类,先登录后使用。另一种像美团饿了么,将产品展示给用户,用户产生兴趣进行专属操作时再登录。 第一种不做讨论,第二种情况下,如果未登录时的产品展示有很多功能,这时候一个一个的进行判断恐怕不是程序员想看到的,并且繁杂的程序更容易出错。 这里我们使用面向切面编程的思想——AOP,对需要登录的功能方法进行注解,统一处理登录检验。...
2018-09-07 11:34:58
1234
原创 热更新——Sophix
热更新——Sophfix牢骚前些时间,公司因为服务器调整,有些特定接口IP需要更换,其中包括一个更新接口。从接到通知更换服务器到更换完成,前端开发人员只有两个小时的准备时间,其中一个小时我还在来公司的路上(晚上十点接到通知) 两个小时内及时发包也不能保证用户的更新,况且还是在晚上。 所以这几天一直很迫切需要一款热更新框架,Sophix就出现了。介绍官方文档Sophix是...
2018-08-11 16:34:04
1780
原创 跟随手指移动的View , 自动贴边
自定义View这一块,一直是我的心病。最近项目遇到需求,类似于高德搜索界面的列表随手指移动。 饭要一点点吃,先从最基本的View跟随手指开始。先贴效果图和代码:package com.martin.animationstudy.view;import android.animation.ObjectAnimator;import android.content.Contex...
2018-07-06 15:57:13
2718
7
原创 Timber源码分析
Timber的使用,在上一篇Timber的使用与分析中已经介绍完成.相信有与我一样的同好,对Timber的源码很感兴趣. 源码下载地址Timber特性首先,我们来看一下Timber的特性 Timber是一款可扩展的Logger工具 Timber通过Timber.plant来添加tree实例 Timber需要在使用前添加完成tree实例,最好在Application...
2018-06-09 15:28:28
574
原创 Timber的使用与分析
Android开发中,不可避免的需要使用日志Log.Android原生的Log每次都需要指定Tag,而且指定Tag之后依然很难定位到确定位置.这就引出今天要讲的工具–Timber.Timber 介绍github地址 依赖地址:implementation 'com.jakewharton.timber:timber:4.7.0'官方介绍: This is a ...
2018-06-09 11:24:10
8360
原创 Spring学习——IOC由Annotation实现
基本使用配置文件在src文件夹下,创建xml文件,这个文件放置Spring的配置。一般使用beans.xml做名字。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www...
2018-04-23 22:27:03
232
原创 Spring学习——IOC由xml实现
Spring框架的基础模块,包含IOC(注入)和AOP(面向切面)。基本配置使用基础配置在src文件夹下,创建xml文件,这个文件放置Spring的配置。一般使用beans.xml做名字<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/...
2018-04-23 20:20:21
239
原创 Spring学习——AOP由xml实现
前面有一篇利用Annotation实现AOP,现在记录一下通过XML来实现该功能。以下过程中,前期准备与上一篇Spring学习——AOP由Annotation实现类似,可以简单看一下。1、 在beans.xml的基本属性<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springf...
2018-04-23 16:58:18
295
原创 Spring学习——AOP由Annotation实现
1、 在beans.xml的基本属性&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XM
2018-04-23 16:25:43
446
原创 设计模式学习——外观模式
设计模式学习——外观模式很久没有拿出时间来写一些东西了。最近在学习设计模式的内容,收益匪浅,打算写一个系列。表述 将复杂的子系统内容,整合成简约、学习成本低的接口。举例我们早晨出门上班,虽然每天都做得没有感觉复杂,但是在代码中体现,就会是这样:breadMarker.make();door.open();dorr.close();car.start(...
2018-04-18 14:24:34
214
原创 Error:Execution failed for task ':app:prepare Debug Android Test Dependencies'.Dependency Error. See
前言今天遇到个奇葩的问题,刚刚打包还好好的,突然就爆出:Error:Execution failed for task ':app:prepare Debug Android Test Dependencies'.> Dependency Error. See console for details.借助我英语二级的水平,颤颤巍巍打开有道翻译了下: 错误:任务执行失败:a
2018-02-02 10:25:57
1156
原创 GreenDao最简单,最直接,最解渴的使用教程
GreenDao的使用标签(空格分隔): 工具使用前言GreenDao,目前性能最好,速度最快的ORM框架。想要学习这个框架有一些时间了。一直忙于项目,所以之前选择学习成本相对较低的Sugar、xUtils、LitePal框架。 今天正式开始学习这个框架,由此记下学习的内容。八种基本类型: byte,boolean,char,short,int,float,lon
2018-01-25 10:28:42
667
原创 Messenger——比AIDL简单的跨进程通讯
Messenger标签: 跨进程通讯参考Blog目录Messenger目录首先服务端配置1 实现Handler2 创建Messenger3 设置onBind方法返回值4 服务端整体代码6 配置客户端实现1 绑定服务2 设置点击事件3 客户端全代码总结源码地址在日常开发中,很少遇到跨进程通讯的需求。所以跨进程通讯这一块一直是我的痛点,准备面试的过程中,又一次揭开伤疤,痛定思
2017-12-02 23:04:05
301
原创 学习AIDL,这一篇差不多了
AIDL标签(空格分隔): 跨进程通讯参考Blog目录AIDL为什么要设计这门语言可传递的数据类型定向Tag实现步骤服务端配置1 创建aidl文件2 创建数据Model3 书写aidl文件内容4 创建服务端Service5 修改配置信息客户端配置1 文件拷贝2 创建连接3 展示 定向Tag源码地址AIDL(Android Interface Definition Lan
2017-12-01 17:58:05
530
原创 Java基础学习
Java集合学习标签(空格分隔): Java学习资料 LRH1993java中集合主要分为四种: List,Set,Queue,MapSetSet是无序的,不可重复的集合。实现Collection接口。一定意义上来说,Set就是Collection,只是行为上不同(不允许重复元素存在)。ListList是有序的,可重复的集合。也是Collection的子接口,由于有序,即存在下标索引,所以
2017-10-20 10:37:56
297
原创 HTML5学习笔记——1
HTML5学习笔记首先是说一下学习HTML5的缘由。因为最近Android的就业环境是在是太差了。所以想要多一个技能傍身,走到哪里都不用怕。如果也有兴趣的,那么请跟随我一起学习。基础认识总听说HTML,但这是什么东西呢?还有跟HTML绑定的CSS,JavaScript。一开始我去百度了一下“Html和css、JavaScript有什么区别和关系”,回答很简单:你是还没接触HTML吧,不然不会问这个问
2017-05-05 11:53:02
817
原创 小白日记——下载进度的顶部通知
技术小白,把学到的觉得有用的东西放在上面,希望不要见笑。如果需要,欢迎转载。下面是实现代码 notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); builder = new NotificationCompat.Builder(this); Intent
2017-02-23 14:50:43
659
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人