自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

villa_mou的博客

我只服你!

  • 博客(58)
  • 收藏
  • 关注

原创 kotlin版本组件化+mvvm项目架构

kotlin版本的mvvm+组件化项目基础架构主要技术点KotlinMVVMDatabindingArouter路由Dagger依赖注入RxjavaRetrofitMVVM:MVVM设计模式的一套快速开发库,整合Okhttp+RxJava+Retrofit+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发一个高质量、易维护的Android应用。ARouter...

2019-06-13 14:54:30 7085 9

原创 采用kotlin+rxjava+retrofit+mvp打造基础架构,快速开发必备

最近项目忙完了,开始有一定的时间优化自己的架构,我一直写代码都有一种感觉,每次写完一个项目,然后开始优化,等优化完,再看看自己写的代码,就发现我封装的框架真的有点辣鸡,然后又开始写个基础的lib进行架构的优化简介关于Android程序的构架,主要有MVC,MVP和MVVM。MVC相对于较为落后,耦合度太高、职责不明确;MVVM其实就是在mvp的基础上采用DataBind,普及性不如M...

2018-07-24 15:42:34 3916 5

原创 自定义view之kotlin绘制精简小米时间控件

今天玩小米手机的时候看到了小米的时间控件效果真的很棒,但是要完全写出来估计以我现在的能力肯定是不够的 而且也没有那么多时间来研究 那就写个简易版的吧 先来看看小米的效果 再来看看我的效果 小米这个控件是有3d效果和手势效果的,当然我没有偶这些,太麻烦,而且我也不熟 看到这个控件的时候先理一下自己的思路 1,先画最外层的圆弧和文字 2,再画里面刻度盘 3,再画秒表三角形

2018-01-19 15:29:36 1322 1

原创 深坑之Webview,解决H5调用android相机拍照和录像

最近在开发过程中遇到一个问题,主要是调用第三方的实名认证,需要拍照和录像,办过支付宝大宝卡和腾讯的大王卡的都知道这玩意,办卡的时候就需要进行实名认证,人脸识别 本来第三方平台(xxx流量公司)说的是直接用WebView加载这个H5界面就完事了,我心想这么简单,那不是分分钟的事,放着后面做(公司就我一个安卓,所以开发都是我说的算^_^,独立开发有的时候还是挺爽) 结

2017-12-06 11:02:41 86765 54

原创 Android 知识点记录

android学习笔记AS最常用的快捷键1.Ctrl+E,可以显示最近编辑的文件列表 2.Shift+Click可以关闭文件 3.Ctrl+[或]可以跳到大括号的开头结尾 4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方 5.Ctrl+F12,可以显示当前文件的结构 6.Ctrl+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择 7.Ctrl+...

2017-08-28 14:54:07 777

原创 新版本android studio报错问题

1: Task failed with an exception.-----------* What went wrong:A problem occurred configuring project ':app'.> Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'. > Could not create task ':app:minifyReleaseWithR8'

2021-11-03 14:45:43 3223

原创 笔记啊啊啊啊

判断某个字符串中是否其他某些字符串 const deviceName = e.name as string; const patternDevices = [A5Pattern, HUA4Pattern, HUA5Pattern]; const adapterFlag = patternDevices.filter(name => deviceName.includes(name)).length > 0;...

2020-07-10 17:14:35 218

原创 在ES6的语法中如何给数组去重

这是从数组中筛选出重复项并仅返回唯一值的三种方法。我最喜欢使用Set,因为它最短,最简单;setSet是ES6中引入的新数据对象。因为Set仅允许您存储唯一值。传递数组时,它将删除所有重复值。这个和java基本一样让我们回到我们的代码,并分解正在发生的事情。有两件事发生:首先,我们创建一个传递数组的新Set。因为Set允许唯一值,所以将删除所有重复项。重复项不存在后,我们将使用散布运算符将其转换回数组filter为了理解此选项,让我们看一下这两种方法的作用:indexOf和filter。.

2020-07-08 18:16:30 789

原创 这个交互也太炸裂了趴

动画是为一个app创造出色用户体验的重要组成部分。 它的关键挑战是向用户解释应用程序的逻辑,但是常见的错误是鲁莽地使用动画,从而否定了改善用户体验的整个观点。 为了使应用出色而不仅仅是出色或平庸,动画必须正确集成并且不应多余。在本文中,您将了解如何使用ScrollView和react-native的Animated API创建标题动画。在文章结尾之后,我们将获得以下输出How it works?在ScrollView上渲染标头,并将ScrollView的顶部位置设置为标头的偏移量。然后,我们可以简单

2020-06-05 10:36:57 353

原创 如何在React Native里面使用 FlatList 采用 Hooks 函数?

Hooks 是javascript的函数, 他让我们可以使用state不需要写一个class因此,Hooks 被用到了 react 函数组件,而不是class组件请记住,Hooks文档中概述了我们需要遵循的规则,应该做的和不应该做的。文档地址:https://reactjs.org/docs/hooks-rules.html不要在循环或嵌套函数中调用Hook,更不要说在条件逻辑中了在您的React函数开始的最高点处执行Call Hooks。理由想象一下序列的工作原理,或者也许您可以考虑数组如

2020-06-03 16:09:37 829

原创 React Native的VSCode

不久前,我认识的最有经验的React Native开发人员之一JaniEväkallio发表了一篇很棒的文章,介绍了Formidable于去年三月开始将其用于新的React Native应用程序的所有不同工具。自从我开始开发React Native以来,这给了我灵感,让我首先去解决一个我遇到的很多问题:选择一个IDE并正确设置它-而不必每隔一个月进行更改。正如我提到以前的文章为阵营本土首发,找到适当的设备开始的右脚上的一个基本组成部分:所以我决定开始新的,按照我自己的建议,并安装Visual Studio

2020-05-15 14:29:00 430

原创 在React Native中进行渐进式图像加载

​Internet连接速度是可变的,尤其是在使用移动设备时。作为开发人员,我们经常会忘记许多用户在功能较弱的设备上运行我们的应用程序,并且互联网连接速度比我们慢。走出深山,尝试访问您的应用程序并查看其性能。应用程序中最昂贵的东西之一就是您正在加载的远程图像。它们将花费一些时间来加载,特别是如果它们是大图像。今天,我们将构建一个组件,使我们能够: 传递完整尺寸的图像以显示(就像普通Image组件一样) 在加载全尺寸图片时传递缩略图以显示 在即将下载的图片的位置自动显示一个占位

2020-05-15 13:50:29 415

原创 阿里云的代理

// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { ext.kotlin_version = '1.3.50' repositories {// google() maven...

2020-03-13 14:46:55 306

原创 flutter_mvp

项目介绍该项目为flutter的mvp的基础架构,主要封装了mvp基础类,使用dio进行网络框架封装,使用fluro进行路由跳转;mvp使用思想和我封装android的mvp的思想基本一致,但是由于dart和kotlin的语法差别,可能有些地方还是不太一样,如果想了解我原生的mvp封装可以参考文章https://blog.csdn.net/villa_mou/article/detail...

2019-09-26 13:35:07 427

原创 记一次android利用nexus搭建maven私服的过程

1首先进入Nexus官网https://help.sonatype.com/repomanager2/download/download-archives—repository-manager-oss,下载最新版本,选择download-archives—repository-manager-oss,目前免费版最新版本是2.14.14,点击nexus-2.14.14-01-bundle.zi...

2019-09-11 17:14:45 365

原创 ReactNative实现城市选择列表

引言使用RN开发了一段时间,最近遇到了一个比较棘手的问题,就是用react写个城市选择列表,当然这个如果用Android原生来写,网上的例子数不胜数,随便就能找到,但是react却很少,也没有一个和我这个需求相匹配的,所以就只能自己动手撸一个出来咯.效果这个城市列表和其他的有点区别1,有当前定位城市2,有热门城市3,每个子项是一个类似GridView的效果,而不是ListView实...

2019-06-18 10:17:38 895

原创 RN-wanAndroid的简单学习Demo

RN-wanAndroidA wanAndroid project Coding by RN引言由于公司准备把所有的项目用RN进行重写,所以最近学习了一段时间的RN,简单写了个wanAndroid的小项目主要内容如下项目截图总结RN是facebook出的一个跨平台方案,体验我觉得一般,不过最近听说facebook正在对RN进行内核优化,也不知道最后的结果是什么,相比于...

2019-05-20 15:13:27 225 1

原创 sqlite笔记

运算符 描述id name age city job---------- ---------- ---------- ---------- ----------0 张三 24 四川成都 程序员1 李四 25 ...

2019-03-02 16:15:03 275

原创 flutter练手项目-玩Android

引言学习了两周的Flutter,准备写个小项目练练手,正好洪洋的玩Android有免费的Api可以用,就写个简易版的玩Android吧。项目截图主要技术点常用widget的使用下拉刷新和上拉加载更多的使用列表状态判断,数据为空,loading界面dio网络库的使用webview使用第三库网络库 dio: ^1.0.12 #网络框架Loading控件 f...

2019-01-05 23:35:38 866

原创 flutter下拉刷新,上拉加载更多

下拉刷新的默认控件RefreshIndicator,其实就是android里面的SwipeRefreshLayout一个效果;这里有个和android不一样的概念就是future,官方给的解释:A Future is used to represent a potential value, or error, that will be available at some time in the...

2018-12-24 14:23:18 2719

原创 Flutter实现滑动头部折叠切换tab

主要使用到NestedScrollView和SliverAppBar先看效果:代码如下:import 'package:flutter/material.dart';class ActPage extends StatefulWidget { @override State<StatefulWidget> createState() { return new...

2018-12-20 17:15:36 7750 2

原创 flutter实现首页

首先了解几个widgetSliverAppBarFlutter中的Slivers大家族基本都是配合CustomScrollView来实现的,除了上面提到的滑动布局嵌套,你还可以使用Slivers来实现页面头部展开/收起、 AppBar随手势变换等等功能。给SliverAppBar设置flexibleSpace(展开后的内容)和expandedHeight(展开高度)属性,就可以轻松完成App...

2018-12-20 15:19:23 4938

原创 Flutter导航栏实现

学了几天的flutter,似乎有点感觉了,今天来上手搞一个导航栏,实现类似android里面的ViewPager+Fragment的效果;二话不说直接上代码;import 'package:flutter/material.dart';import 'package:mou/navigationbar/ActPage.dart';import 'package:mou/navigation...

2018-12-19 09:55:04 3333 1

原创 flutter入坑

flutter入坑1,安装首先下载flutter sdkhttps://github.com/flutter/flutter/releases配置用户变量PUB_HOSTED_URL->https://pub.flutter-io.cnFLUTTER_STORAGE_BASE_URL-&a

2018-12-18 11:16:41 1151

原创 CoordinatorLayout示例

CoordinatorLayoutcoordinatorLayout (协调布局)其实就是将其下的所有子View都抽象成: 互相依赖(depends)的关系. 因此某个view可以基于另一个view来定位,这样抽象的好处更强大的地方在于:每一个view的所有属性, 坐标, 样式, 状态等一切都可以依赖于另一个view, 因此使得parentView和所有childView之间都可以互相联动起...

2018-10-11 16:40:24 216

原创 手撸一个自定义日历控件

引言日历控件在android开发中也是比较常见的一个控件,并且目前大部分开源的日历控件也已经做得很漂亮,很完善了,功能也相当丰富;今天这个日历控件就是我在别人的基础上进行修改了的,首先很感谢这个开源库(https://github.com/codbking/CalendarExaple);帮我解决了打个大问题,主要是缓存view的问题;效果先来看下效果是怎么样的;##实现步骤1,最开...

2018-10-10 14:46:50 249

原创 自定义View之kotlin绘制折线图二

早上看到有个童鞋在群里面发牢骚,说这个自定义view怎么画,不太会,ok,正好我也没事,那我就花两个小时帮你搞定他吧,先看下他要的效果;再来看下我实现的效果...

2018-09-20 10:50:50 485

原创 kotlin的内联函数的使用

kotlin的内联函数属于kotlin的高级特性了,也是不同于java的区别之一; 至于为什么kotlin要使用内联函数,当然肯定是有它的好处的,首先看下方法的调用流程调用一个方法其实就是一个方法压栈和出栈的过程,调用方法时将栈针压入方法栈,然后执行方法体,方法结束时将栈针出栈,这个压栈和出栈的过程是一个耗费资源的过程,这个过程中传递形参也会耗费资源。为什么要使用内联函数inline...

2018-08-21 16:53:59 2077 1

原创 自定义控件之kotlin绘制折线图和曲线图

概述  今天花了一天时间绘制了一个自定义的曲线图和折线图的自定义控件,可以说现在是身心疲惫了,有点累,下班回家写这篇博客总结下自己的绘制思路,如果有人喜欢的话,麻烦给个star了^_^;    其实这类曲线,折线和柱状图的库现在特别多,而且也已经特别成熟了,目前使用对多的应该是hellochart,mpandroidchart这两个库,这两个库我之前在项目中还用过,扩展性真的超级强,而且基本...

2018-08-01 21:32:54 2324 2

原创 Android View滑动总结

前言View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动处理。其实不管是哪种滑动方式,其基本思想都是类似的:1,当点击事件传到View时,系统记下触摸点的坐标2,手指移动时系统记下移动后触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标。实现View滑动有很多种方法,这里主要是6种滑动方法,分别是1,layout();2,...

2018-07-30 17:29:23 292

原创 解决Glide4.x之后transform和centerCrop同时使用不能显示圆角的问题

项目中使用到一个imageview上面是两个圆角,下面是两个直角 网上找了一波类似的控件,找到了这个 public class OvalImageView extends ImageView { /*圆角的半径,依次为左上角xy半径,右上角,右下角,左下角*/ private float[] rids = {10.0f, 10.0f, 10.0f, 10.0f,...

2018-06-26 16:12:51 6346 1

原创 EditText输入金额挖坑记

最近在做一个跳蚤市场的App,其实就是类型商城+社区的app,当然肯定少不了商品的买卖,商品的买卖肯定涉及到金额的输入 就是那么一个小小功能,搞了半天才搞好,差点搞崩溃 先看下效果 就是那么简单的一个EditText,搞起来麻烦的一笔 首先看需求 * 前面要有一个¥符号 * 金额必须限制输入小数点后两位采用的方式1(失败) 最开始我是采用前面再搞个Textview设置一个...

2018-05-29 18:00:37 621

原创 自定义View之kotlin绘制手势设置温度控件

手撸一个空调温度调节自定义控件,效果如下 这个控件的难点主要是手势控制,其他的都很简单 说下思路吧 * 首先绘制圆盘,刻度,阴影(需要关闭硬件加速),文字 * 然后根据划过的角度绘制进度条 * 最后根绝touch事件重新绘制,并设置数据回调 代码如下class TempView @JvmOverloads constructor( context: Co...

2018-03-30 15:13:24 491

原创 学习一波自定义RecyclerView的ItemDecoration

ItemDecoration是recyclerView的静态内部类,主要是为RecyclerView的Item绘制各种特效,添加效果,最常用的就是绘制分割线 ItemDecoration只有三个常用方法,一个是getItemOffsets设置偏离值,一个ondraw绘制,还有一个ondrawOver主要是浮层绘制 public abstract static class ItemDeco...

2018-03-05 13:48:18 398

原创 自定义view之网状图

小牛试刀,花了一个小时写了个网状图,如下 绘制的思路分成三部 1,首先绘制三条连接的长的直线,代码如下 //画第一条竖线 canvas.drawLine(0f, -r, 0f, r, mPaintLineBg) val averageAngle = 360f / PART val y = (Math.sin(averageAngl

2018-01-05 13:45:54 401

原创 自定义View之抽奖转盘

偶然看见别人写了一个抽奖的转盘控件,赶脚还不错,看样子觉得不是很难,可以一试 、 别人写的是上面这个效果的,我也试着写了一个,下面这个效果的,大概意思是差不多 先来看看思路,首先实现这个效果肯定得先画内部的分区和文字 然后再画外边缘和白点 最后画中间的指针和文字 其实很简单 总结下来就下面结果方法 好了,话不多说,贴代码吧,写的挺清晰地class LuckyDraw

2018-01-03 16:54:40 2275

原创 fragment+viewpager的懒加载

之前一直都没怎么fragment的懒加载,因为项目中没有这个需求,新项目准备做一下懒加载 什么是懒加载:说白了就是我从第一个fragment切换到第二个fragment再去请求数据,并且只请求一次,之后可以采用下拉刷新的方式请求,需要用户自行触发 为什么要用懒加载:我们都知道viewpager的setOffscreenPageLimit(int)方法可以设置默认加载页面个数 但是最少也是两页,

2017-12-29 10:16:17 247

原创 kotlin在fragment中不能像activity中直接通过id调用控件的解决方法

不能直接用id的原因,是因为你的xml没有载入,会导致使用id的时候会报空指针,如果需要使用,在onCreateView return view后,在onViewCreate函数中使用Id直接调用,onViewCreate会在onCreateView后执行

2017-12-28 09:58:19 2613

原创 rxjava2定时器每秒请求一次数据

项目进行的过程中有个需求是在20秒内每秒请求一次数据,请求成功的json中有个字段,如果有这个字段代表请求成功,如果没有则继续请求,直到20秒结束,20秒结束则失败本来最开始采用countDownTimer来做,很简单就搞定了,但是项目引进了rxjava,那肯定得用rxjava试一试啊 好东西不能错过 直接上代码,并不难class FourthActivity : BaseTitleActivi

2017-12-26 14:44:18 8680

原创 kotlin的lambda表达式

Lambda是什么 简单来讲,Lambda是一种函数的表示方式(言外之意也就是说一个Lambda表达式等于一个函数)。更确切的说:Lambda是一个未声明的函数,会以表达式的形式传递来历 Python:一个函数返回了一个内部函数,该内部函数引用了外部函数的相关参数和变量,我们把该返回的内部函数称为闭包 在kotlin里面我们通常说的闭包就是lambda表达式首先看高阶函数 将函数作为参数或者

2017-12-18 15:08:42 909

空空如也

空空如也

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

TA关注的人

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