自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 资源 (2)
  • 收藏
  • 关注

原创 Flutter UI适配详解 —— Flutter开发必看!

Flutter中的宽高单位不同于Android中的dp和IOS中的pt,Flutter奉行另外一种单位,即逻辑像素。Flutter 遵循简单的基于密度的格式,如 iOS。资产可能是1.0x、 2.0x、3.0x或任何其他乘数。Flutter 没有dp 但有逻辑像素,与设备无关像素基本相同。所谓devicePixelRatio 表示物理像素在单个逻辑像素中的比例。devicePixelRatio表示1逻辑像素在设备上对应的物理像素数(px),不同设备的devicePixelRatio不尽相同,比如

2021-09-10 23:08:09 5002

原创 Java类加载机制

一、Java类加载机制中的类在讲Java类加载机制前,我想问问大家知道Java类加载机制中的这个类指的是什么吗?肯定有人会想“这不开玩笑吗,不就是我们写代码时创建的类吗”,严格上来讲,其实不是的,我们写代码所创建的“类”只是java文件,记得刚学Java时在终端用Java命令跑Java程序的时候吗?javac HelloWorld.javajava HelloWorldjavac和...

2019-12-06 17:02:26 338

原创 Java基础之反射机制

Java反射机制JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。那么反射的原理是怎样...

2019-12-02 22:08:33 304

原创 Kotlin协程学习指南

Kotlin自2016年发布1.0版本发展到现在的1.3版本也已经有三年了,其中更是在2017年被Google认定支持为Android官方开发语言,相信绝大多数Android开发者都曾关注过kotlin并已使用它,我大概是在1.2版本的时候开始用的,之前也接触过一些,但是觉得刚出来的东西可能不太稳定,就没有太在意,随着Kotlin语言的完善更新和我对它的深入使用,越发觉得用了就回不去了(当然是指回...

2019-08-06 14:12:19 646

原创 搞懂Handler去面试!

如果你没有听说过或者使用过Handler,那么你一定不是一个合格的Android开发。Handler作为我们最常使用的跨线程UI工具,你可能只知道它的使用,却没有了解过它的实现原理。可能有人会想,原理这种东西理解与不理解它,并不影响我们对它的使用。话是没错,可能原理这种东西对于大部分人最直接的作用就是面试了,对于Handler,它可是面试中的常客,与之相关提问最多的就是Handler的原理了...

2019-07-08 16:10:02 218

原创 Android多效果轮播器/Banner实现,支持无限轮播、自动切换、指示器动画

2019.9.12已封装成控件扔到GitHub上https://github.com/kjt666/Banner开篇接上篇文章动手实现你的ViewPager切换动画本次内容是利用ViewPager实现画廊效果图片轮播器,画廊效果已经在ViewPager上实现了,那么一个标准的轮播器无外乎下面几点要求:轮播的无限循环轮播器中最重要的一点就是能够实现无限循环,让图片首尾相连、流...

2019-06-25 11:30:03 4389 1

原创 自定义实现ViewPager切换动画

效果图基本原理要实现如上展示的两种效果,我们需要两个东西来帮助实现——clipChildren和PagerTransformer1)clipChildren这个属性见得不多,可能很多小伙伴不熟悉,这个属性是个布尔值,clip中文为裁剪的意思,clipChildren即为裁剪孩子(硬核翻译)。一般修饰在ViewGroup上,它可以表示是否限制处于容器内部的子控件可以越界绘制,...

2019-06-20 15:48:24 842

原创 Android仿今日头条图片滑动退出效果

逛CSDN的时候,看到几篇写仿今日头条图片滑动退出效果的文章,闲着无聊便想着也给自己项目加上,实现的思路有很多种,本着就近原则选了一篇与自己思路相近的文章结合自己的实践总结一下。下载原文的Demo用了一下,发现了几点可以优化的地方:1、图片缩放上不太好使,放大缩小的同时就给你滑出去了2、没有暴露接口给用户实现更多的透明度变换效果,比如我不仅想要背景透明度在手指移动的时候发生变化,还有文...

2019-02-20 15:14:02 3365 22

原创 Android自定义View仿电影票分割线效果

2018.10.08更新添加支持gradle依赖,GitHub地址:https://github.com/kjt666/TicketDivideLine/tree/master。控件新增三个属性:1、分割线实线长度2、分割线虚线长度(间隔长度)3、分割线方向UI效果图一、需求分析这个效果可以理解为两个半圆+间断的线组成。1、定义这个控件需要如下属性:(1...

2018-01-31 14:45:24 3104 13

原创 使用Python爬虫+SMTP打造‘自动告白邮件脚本'

有一天在逛知乎可以用 Python 编程语言做哪些神奇好玩的事情?发现一条有趣的评论,说是通过python实现每日向女朋友(没有女朋友的也可以发给你的基友)发送一封爱意满满的邮件,当时觉得挺有趣的,于是就照模照样的也用python实现一次。整个代码的思路也很简单。爬取数据、云储存获取数据——整理排版——邮件发送。先放张效果图:本次实例用到的框架有:leancloud、reques...

2017-12-25 14:40:39 4992 2

原创 Android自定义进度条之BeautyProgressBar

代码一年前就已经撸好了,现在才想起来总结。。。先放张效果图吧。附上代码github地址:https://github.com/kjt666/BeautyProgressBar,支持依赖引入项目。概述可以看到上面实现了四种样式的进度条,带进度文字的长条形进度条、带进度文字的圆形进度条、仿IOS商店的圆形进度条、两端为圆形的长条进度条。今天主要讲的是最后一种,因为当初实现它的时候废了不...

2017-10-28 14:54:49 503

原创 如何在Flutter 中启用空安全

如果你的Upgradable或者Latest大多为绿色的话,那么你就继续下一个步骤就行了,这一步主要是让你心里有个底,知道自己的三方依赖对于空安全的支持是怎么样的。可能有的人会问,我现在已经是2.x版本的flutter了,也没见有什么特殊的啊,我怎么能确认已经开启了空安全呢?一旦项目开启了空安全检查,那么你的代码包括项目所依赖的三方库必须是要支持空安全的否则是无法正常编译的。如果遇到问题,说明还有库没升级到空安全,可以直接运行以下命令,强制适配,等完成后再解决有问题的库即可。表示不支持空安全的版本,

2023-06-02 15:45:51 942

原创 Flutter2.x升级3.x版本遇到的问题及解决方案

项目原本使用的Flutter版本为2.5.3,现在要升级到3.0.5版本,结果升级完后项目直接编译不通过,报了一堆的错误,如果你也是这种情况,可以按我接下来讲的操作试一试,反正我就是这么解决问题的。

2023-05-22 16:23:23 1316 3

原创 解决Kotlin升级1.7以上版本时Room库报错的问题

你要做的是检查你的Room版本是不是低于2.4.3,如果低于,那就升级Room版本,因为这个报错是Room库的bug,低于2.4.3的版本无法识别kotlin1.7中的挂起函数。如果你的项目升级Kotlin版本到1.7以上后,在对项目进行编译时Room报错,不要去降Kotlin版本或者去把DAO中函数的。关键字去掉,虽然这么做后项目可以编译通过,但这不是问题的解决办法。

2023-05-18 16:37:11 550

原创 RecyclerView的好朋友 — SnapHelpter

SnapHelpter,相信很多人可能都不知道它或者没怎么关注过它,但是通过它实现的效果肯定都见过。比如短视频应用中切换视频时一划划一页的效果,这可不是ViewPager实现的啊,使用ViewPager实现的话成本太高,所以这类效果都是通过RecyclerVIew + SnapHelper来实现的,拿刚才讲的短视频切换效果来说,使用的就是RecyclerVIew和SnapHelper的子类PagerSnapHelper来实现的。说了这些,那么SnapHelper到底是什么东西呢?见名思意,Snap,翻译成中

2022-07-04 17:56:03 474

原创 flutter打包aar并上传Maven私服,flutter模块与原生工程解耦

添加Flutter模块作为依赖通常在做Flutter混合开发时,我们需要创建一个flutter模块,并通过模块依赖的方式添加给原生工程,这种方式对需要进行flutter混合开发的人员来说,没有问题,但是对于同组其他不需要进行flutter混合开发的人来说,却增加了额外的成本,比如需要配置Flutter开发环境,每次同步flutter module最新代码。所以,为了非flutter开发人员更好的开发体验,我们需要对flutter模块换一种依赖方式—AAR依赖添加Flutter AAR作为依赖Flu

2021-09-26 18:20:50 1250

转载 3000字扫盲shell基础知识(新手必备)

不论前端还是后端,再学会Linux的基础上,还应该学会写一些简单的Shell。不止是工作,日常中想做一些东西,如果手动做就很累人也费时间,如果你会用Shell脚本处理就很简单了,本文普及的shell的一些基础知识。后面还会持续更新。shell基础语法之变量shell 变量命名变量只能由大小写字母,数字和下划线组成。 变量名称不能以数字开头。 变量可以存储数字类型或者字符串类型。 变量赋值等号两边不能有空格。 字符串的变量可以用单引号或者双引号括起来。...

2021-08-22 17:43:40 384

原创 解决:Flutter 关闭Dialog退出App问题

最近使用Flutter重写替换了原生的一部分页面,页面中有到Dialog,结果弹出的时候好好的,关,关不掉了,一点确认或取消按钮就直接将App退到后台了,这让我百思不得其解,之前也有用过Flutter的Dialog,也没出现过这种情况啊,明明是一毛一样的代码。就是这段代码showDialog( context: context, barrierDismissible: true,

2021-08-21 18:11:03 2431

原创 原生与Flutter页面跳转并传递数据

在App开发中,从一个页面跳转至另一个页面并附带一些参数供下一个页面使用是最为常见的了,那么,在原生与Flutter混合开发的情况下,页面互相跳转并附带参数传递怎么实现呢?

2021-06-19 20:00:44 4567 3

原创 Flutter—ListView嵌套ListView不显示的问题

在App的开发过程中,经常遇到一些需要ListView嵌套ListView的场景,如果是原生开发的话,怎么处理我们应该是再熟悉不过了,但是现在换到Flutter,怎么处理呢?其实很简单,

2021-06-15 21:53:01 843 2

原创 原生与Flutter通信

之前讲过一篇Flutter与原生通信,为大家讲解了Flutter如何调用原生,但是没有介绍原生如何调用Flutter,那么原生如何调用Flutter呢?诶~,还是tongguo

2021-06-13 23:49:27 1704 5

原创 Flutter自定义Widget—随滑动改变高度的PageView

可以随滑动展示不同高度的图片效果实现方案使用PageController对PageView滑动监听,动态设置容器高度。核心代码_pageController.addListener(() { setState(() { //向左滑 if (_pageController.page > _currentIndex) { _currentIndex = _pageController.page.floor();

2021-06-12 17:24:14 1898 1

原创 Flutter自定义Widget—可加载原生图片资源的Image

上一篇博客讲解了Flutter如何调用原生图片资源

2021-06-05 18:41:25 417 2

原创 Flutter调用原生图片资源

在Flutter与原生的混合开发中,经常遇到Flutter与原生都需要使用同一份图片的情况,并且由于原生是主导,图片资源都在原生这侧。那么,Flutter可不可以直接使用原生的图片资源呢?——答案是不可以的,Flutter并不能直接访问原生侧的图片资源,官方没有提供这样的API供我们使用。那么,在Flutter侧再放一份图片资源呢?虽然可以这么做,但这样显然是不合理的,除了要维护两套资源文件外,安装包的大小也会增加,尤其是那种有很多图片资源的App。所以,为了避免两份同样图片资源的存在,我们只能想办法

2021-05-30 12:38:56 1324 1

原创 Flutter与原生通信

—— Flutter作为一个跨平台框架,一经问世,便受到众多开发的追捧,发展至今相信已经有很多公司或个人将其加入自己的项目,进行混合开发,那么FLutter如何与原生通信呢?—— 本次就以Android为例,介绍Flutter如何与Android之间进行通信,调用Android代码。目录MethodChannelFlutter端代码Android端代码PigeonMethodChannelFlutter与原生之间通信是通过一个叫MethodChannel的东西来实现的,它的名

2021-05-26 18:05:16 3173 2

原创 Android项目创建Flutter module后运行编译失败问题

已有Android项目需要接入Flutter并且创建Flutter module后运行app编译失败的,查看一下下面两个因素是不是Android X项目 Flutter版本是否大于1.17如果你不是Android X项目,并且你的Flutter版本大于等于1.17,那么你无论如何是运行不起来你的app的。因为从Flutterv1.17开始,Flutter模块仅支持Android上的AndroidX应用程序。这点在Flutter官网——Add Flutter to existing ap...

2021-05-19 19:04:49 532

转载 什么是泛型?泛型的基本原理与使用优势。

1. 什么是泛型?泛型将接口的概念进一步延伸,“泛型”的字面意思就是广泛的类型。类、接口和方法代码可以应用于非常广泛的类型,代码与它们能够操作的数据类型不再绑定在一起,同一套代码可以用于多种数据类型,这样不仅可以复用代码,降低耦合性,而且还提高了代码的可读性以及安全性。讲起来优点抽象,我们看个实际的例子。2. 先来看一个简单的泛型例子package genericity.demo;/** * @author BastetCat * @data 2019/8/8 21:14 */p

2021-02-09 16:50:11 2695

原创 搞定Android Post请求缓存(不能缓存你顺着网线过来打我)!

Android App网络缓存实践为什么要做网络缓存?OkHttp的网络缓存OkHttp的限制如何实现Post缓存我的缓存方案如何识别需要缓存的接口为什么要做网络缓存?网络缓存可以提高接口的响应速度,节省服务器资源,因为有些数据比如用户信息之类的,很久都不会有什么修改,那么这种情况就没必要每次都从服务器拉取数据,完全可以使用本地的缓存,当用户信息有更新时,我们再将从服务器获取的数据覆盖本地缓存并使用。期次对于某些需要用来做界面展示的数据,当手机没有网络的时候可以使用其缓存快速展示给用户,避免界面出现空

2021-01-29 15:14:07 993 6

原创 Android反射修改buildConfigField生成的属性失效问题

在开发的时候,我们经常需要在项目的build.gradle文件中通过buildConfigField方法在BuildConfig类中生成一些常量属性供项目运行使用,比如一些第三方SDK的id和key,或是根据打包环境或者渠道对应的接口服务器地址等等。现在问题来了,我们希望不止在打包时可以切换对应环境的接口服务器地址,在App运行时也可以切换,因为打包时的切换只算一种静态切换,它在编译时就已经将地址设定好了,如果想换一个地址,只能再从新打包,这在某些情况下就显得非常麻烦。所以我们需要在支持“静态切换”

2020-09-29 17:30:57 1529

原创 View设置setPivotX()、setPivotY()锚点无效原因

通常我们使用ObjectAnimator对View设置缩放或旋转动画时,需要对View设置动画锚点,也就是调用View的setPivotX()、setPivotY(),但是设置完后发现没有效果,这是为啥呢?相信很多人在调用上面两个方法时想当然的就把锚点的百分比当做参数传了进去(比如我),结果人家要的并不是百分比。。/*** @param pivotX The x location of the pivot point.*/public void setPivotX(float pivot

2020-08-21 16:19:33 1687

原创 Android多平台Push推送服务集成组件化实践

众所周知,因为一些原因(hexie)谷哥服务在大陆不能使用,再加之Android系统开源,所以国内基于Android源码定制的各种OS百花齐放,基本大一点的手机品牌厂商为了更好的用户体验都会有自己的深度定制版OS,比如MIUI、EMUI、Color OS、Flyme,Smartisan OS等等,那么既然谷哥服务不能用,反正系统都定制了,那么干脆把各种服务也自己定制一番吧,没有Googleplay?没关系,各种自家应用商店上!没有FCM(Firebase Cloud Messaging,GCM升级版,谷歌.

2020-07-11 19:52:38 1022

原创 解决Mac每次打开终端都需要手动执行source命令问题

最近需要在终端里执行一些adb命令调试设备,于是将adb的环境变量加到了profile中,但是每次打开终端后都需要执行一些source命令才能使adb命令生效,这样就很烦了,怎么解决这个问题呢?很简单。在.bashrc文件中加入 source命令,如果安装了zsh那么就在.zshrc中加入。ok,这样每次打开终端后就不用重复输入source命令了,完美解决~...

2020-06-17 19:04:58 4373

原创 Android交互实现——图片共享元素转场及手势拖动返回

最近需要在Android上实现一个iOS上很常见的交互效果,在界面的转场之间共享图片,比较常见的场景就是当需要在一个列表中查看某个图片大图的时候,列表页和详情页之间图片的移动共享,仿佛两个界面中的图片都是共享同一张,同时图片详情页面支持手势拖动图片退出,拖动的时候图片会产生位移和缩放的效果。描述起来有点吃力,还是先看看我实现的效果图吧。那么这个效果是怎么实现的呢?实现思路首先这...

2020-03-28 18:57:33 1134

原创 Android动效实现——底部向上弹出滑动式弹幕

2020-03-25 23:18:09 3365 4

原创 封装SurfaceView+Mediaplayer,支持手势进度、音量、屏幕亮度调节,双击暂停播放

封装的视频播放控件,使用了SurfaceView+Mediaplayer实现,并添加了多种手势支持,如滑动调节音量、亮度、视频快进快退和重力感应。SurfaceView和Mediaplayer的使用并没什么难的,此次封装核心在于手势判断,其他地方可能还有Bug,另外记录一个坑,我发现如果手机开启了息屏显示的功能,当锁屏时SurfaceView会重复执行surfaceDestroyed—>su...

2020-03-15 19:21:56 760 3

转载 Kotlin与Java互操作要注意的问题

个人使用Kotlin开发也有一年了,一直想总结一下Kotlin和Java互相操作要注意的问题,偶然看到一篇总结不错的文章就直接搬运过来了。前言目前kotlin是谷歌首推的开发Android的语言,但由于历史原因,我们绝大部分项目依旧还是以Java为主的,也就是说存在Java和Kotlin两种语言同时开发的情况。有人会说把老项目全部翻译成Kotlin,的确可以怎么做,但是成本还是挺大的。...

2020-03-06 12:32:42 1216

原创 WebView适配问题汇总(持续更新)

1、网页图片宽高过大有些时候,我们用WebView加载的网页没有对移动端进行适配,导致网页中的图片超出屏幕大小,影响显示效果,这时我们就需要对WebView进行设置使网页中的图片大小适配移动端。通过js脚本,重置img标签中图片的宽度和高度。//开启javascript支持 webView.getSettings().setJavaScriptEnabled(true...

2020-02-29 14:33:41 1349

原创 Android与JS通信

Android调用JsloadUrl()通过WebView的loadUrl()方法调用Js方法。mWebView.loadUrl("javascript:callJsDefault()"); //在android调用js有参的函数的时候参数要加单引号String param = "\'来自Android的参数\'";mWebView.loadUrl(String.format(...

2020-02-26 21:40:11 925

原创 Android WebVIew缓存机制详解

前言由于H5具备 开发周期短、灵活性好 的特点,所以现在Android App大多嵌入了Android Webview组件进行Hybrid开发但我知道你一定在烦恼Android Webview的性能问题,特别突出的是:加载速度慢 & 消耗流量今天,我将针对Android Webview的性能问题,提出一些有效解决方案。目录1.WebView的性能问题1.1 H5页面...

2020-02-25 15:39:18 7650

原创 完美解决Android中的ScrollView嵌套ListView滑动冲突问题

之前写了怎么解决ScrollView嵌套ScrollView滑动冲突的问题,因为这种不同嵌套所造成的滑动冲突本质上是一样的问题和原因,解决思路也都相同,唯一的具体差别就差在判断条件上,故此贴之上代码,想看问题原因和解决思路的可以查看这篇文章——解决Android中ScrollView嵌套ScrollView滑动冲突问题public class MyScrollListView extends...

2020-02-16 15:25:31 846

dynamicPageView.dart

Flutter自定义Widget-DynamicPageView(随滑动改变高度的PageView)

2021-06-12

Android自定义控件-仿今日头条图片上下滑动退出

Android自定义控件-仿今日头条图片上下滑动退出

2021-02-02

空空如也

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

TA关注的人

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