自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

原创 shell | 判断输入是否包含标点符号

#!/bin/bash#判断输入的字串是否包含标点符号#包含标点符号返回0,不包含返回1isIncludePunct(){#输入的第一个参数位$1#sed是流编辑器,s是sed的替换命令,替换源[^[:alnum:]],使用了正则表达式,代表除大小写字母和0-9数字之后取反,也就是除了大小写字符和数字之外的字符,替换目标为空,/g表示s标志结束#实质就是将输入的字串的标点符号字串去掉了newInput="$(echo $1 | sed 's/[^[:alnum:]]//g')"#判断替换之后

2022-04-11 17:15:21 805

原创 javascript | 登录框拖拽

效果:代码:<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> .login-header { width: 100%; text-align: center; height: 30px

2022-03-28 18:35:47 187

原创 javascript | 登陆form数据传递

效果:login代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge">

2022-03-21 19:54:20 305

原创 javascript | 验证码倒计时

效果:代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <tit

2022-03-15 19:07:39 135

原创 javascript | 京东倒计时

效果:思路:先执行一次countDown的原因是网页刷新的时候,setInterval会等待一秒才执行callback函数,还没执行函数之前就会显示出写si的123数字,所以先执行一次countDown函数,用于在刷新网页的时候不会看到写si的数字。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Co

2022-03-15 17:55:29 1350

原创 javascript | 京东按键获取焦点输入内容

效果:按键s,文本框获得焦点,不需要将光标定位到文本框再获得焦点输入内容。思路:为document添加onKeyUp事件监听,利用键盘事件对象的keyCode属性,获取用户点击的是哪一个按键,如果是S,那么为输入框获取焦点。为什么是使用keyup,而不是keydown,因为keydown长按会一直触发,为了避免在输入框中输入s,所以使用keyup。代码:<!DOCTYPE html><html lang="en"><head> <meta ch

2022-03-09 11:18:15 170

原创 javascript | 跟随鼠标的天使

效果:鼠标移动,图片就跟着移动。思路:给document注册鼠标移动事件,利用事件对象回去鼠标的相对于文档的x坐标和y坐标,x坐标是图片的left,y坐标是图片的top。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=

2022-03-08 12:11:36 145

原创 javasript |动态创建表格

效果:思路:数据是由事先创建的数组中获取的,只有表格头是写定的。从数组中获取数据,根据数据的多少动态创建表格,数组中有多少个对象,就创建多少个tr(行),循环遍历每个对象中的属性,用于创建行中的td,并将td中的内容写入,遍历完对象的每个属性之后,再创建一个td,td里面创建一个a,用于点击删除tr。点击删除的实现是循环遍历每个a,给每个a注册点击事件。代码:<html lang="en"><head> <meta charset="UTF-8">

2022-03-02 11:27:59 340

原创 javasript | 下拉菜单

效果:思路:比较复杂的是样式的编写,首先是ul里面含有3个li,每个li里面含有一个a和一个ul,ul里面再含有3个li,li里面再有一个a。当鼠标经过第一层ul里面的li时,第二层ul显示。当鼠标移出时,第二层ul不显示。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=d

2022-03-01 17:34:44 160

原创 javasript | tab切换

效果:点击tab显示不一样的内容代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"&gt

2022-02-25 18:26:33 117

原创 javasript |全选和取消全选

效果:思路:1,标题列的checkbox设置点击事件,获取checked属性,下面的几个checkbox遍历设置跟标题列checkbox一样的属性。2,for循环为body的几个checkbox设置点击事件,每点击一次就遍历几个checkbox的checked属性,如果有一个为false,标题列的checkbox置为false,如果几个checkbox都为true,标题列的checkbox才指为true。代码:<!DOCTYPE html><html><hea

2022-02-25 16:20:35 324

原创 javasript | 鼠标经过表格行变色

效果:鼠标浮动在哪行,哪行就变色思路:一个table,table里面有thead和tbody,thead里面tr表示一行,th表示一格;tbody里面tr表示一行,td表示一格。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> &l

2022-02-25 14:46:35 383

原创 javasript |仿百度换肤效果

效果:点击图片,背景跟着更换。思路:一个ul,里面有4个li,让li横着排列的关键是设置li的float属性为left。让ul居中的关键是为ul设置宽度,否则默认为父容器的宽度,然后设置margin=100px auto实现水平居中的效果。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compati

2022-02-25 08:57:47 149

原创 javasript | 密码格式验证

效果:思路:一个div里面含有一个input和一个p。div用于将整个组件放在中间,放在中间的关键是margin= 100px auto;意思是上下100px,左右平分,这样就实现水平居中。input用于输入密码,当input失去焦点的时候判断value的长度,如果小于6大于16就改变p的背景,显示错误字样和红色;如果在6-16显示正确字样。p用于显示图标和文字,图标实际是p的背景图片+no repeat.将p显示在input的右边的关键是将p的diplay属性改为inline-block。行内

2022-02-24 16:13:52 698

原创 javasript |循环精灵图

效果:思路:使用ul+li 无序列表进行排列,将每个li排成3行4列的关键点是使用float属性,将每个li左浮动。循环设置每个li的背景图起始位置,那么每个li显示的背景就不一样啦。代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">

2022-02-23 17:28:45 113

原创 javasript | 关闭广告

效果:代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <titl

2022-02-22 17:34:27 143

原创 javascript | 密码框明暗文变化

效果:代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <tit

2022-02-22 16:46:32 123

原创 kotlin黑马 | 图片处理

使用kotlin生成指定大小,颜色的图片:import java.awt.Imageimport java.awt.image.BufferedImageimport java.io.Fileimport javax.imageio.ImageIOfun main(args: Array<String>) { var image= BufferedImage (100,100,BufferedImage.TYPE_3BYTE_BGR);//在电脑内存里图片缓冲区的图像,参数分别是

2021-07-05 22:44:10 346 2

转载 githubAPI接口调用

一篇文章搞定Github API 调用 (v3)

2021-02-21 11:18:55 809

转载 flutter中widget,element和renderObject源码解析

Flutter渲染之Widget、Element 和 RenderObject

2021-01-14 11:40:38 142

原创 flutter动态权限申请

目的:app经常要使用到动态权限申请的情况,权限申请最终只能使用methodChanal来调用安卓原生才能实现,自己写插件实在是麻烦,在pub上找了一个可实现动态权限申请的插件;效果:插件使用:permission_handler 5.0.1+1简单示例:1,在android端的manifest设置对应权限:2,在flutter端的pubspec引入插件:3,在initState中使用: @override void initState() { super.initStat

2021-01-13 15:17:22 985

原创 flutter使用插件调用原生代码

效果:目的:在flutter项目中想要获取手机的系统版本号和手机厂商,flutter是ui系统,只能靠使用原生代码获取手机的系统版本号和手机厂商再传递给flutter,这就要用到插件,有很多插件的包,但是在这里使用自定义插件;资料:12.3 开发Flutter插件12.4 插件开发:Android端API实现android -------- 获取手机设备信息注意:flutter1.1.2之后,Android 平台更新Android 插件 API ,使用更加方便,见下文:支持新的 Android

2021-01-12 10:37:30 655

转载 实习技巧 | java元注解和Android中使用注解替代枚举

注解:深入理解JAVA注解Android @IntDef的使用 - 代替枚举

2021-01-11 15:42:01 132

转载 http请求和flutter的单例模式

HTTP请求的完全过程11.2 通过HttpClient发起HTTP请求flutter的单例模式

2020-12-16 17:49:51 178

原创 flutter canvas实现既有边框又有填充的图案

需求:想要使用canvas画一个边框和填充颜色不一样的图案,flutter和js不一样,只有一个paint画笔的style属性可以设置,style值可以有两种类型,一种的PaintingStyle.stoke,代表边框还有一种是PaintingStyle.fill,代表填充,这两种值只能取其一,那么想要既有边框又有颜色填充怎么办呢?第一种解决方案:思路:使用Stack最上一层画只有边框的图形,下面一层画填充的图形,两层的图形区别只是一个style属性值是边框,并且设置边框颜色和宽度,另一层style属性

2020-12-16 15:12:58 1294

原创 flutter canvas及实现气泡

canvas了解:Flutter -canvas 使用画布和路径绘制自定义形状和线条曲线Flutter:成为Canvas绘制大师(一)Flutter:成为Canvas绘制大师(二)Flutter:成为Canvas绘制大师(三)Flutter 气泡效果合集(全网最全)以下是我根据上面链接改写的气泡:项目需要气泡的角度是在底部正中间:效果:思路:四个弯角利用drawArc画圆弧,之间的横竖线利用drawline画线,小尖叫也是利用drawline实现;import 'dart:math';

2020-12-16 14:50:58 970

原创 flutter《女装商城》实战| 使用provider实现导航栏切换

思路:在app的根部初始化Provider,创建一个CurrentIndexProvide来监听当前currentIndex(表示当前页的index)的变化,当这个变量改变的时候,通知使用者,进行重绘,使用者应该包括body和NavigationItemBar;1,创建带有监听变量的notifyier类CurrentIndexProvideimport 'package:flutter/cupertino.dart';class CurrentIndexProvide with ChangeNoti

2020-12-15 00:52:24 200

原创 flutter返回刷新数据

需求:A页面跳到B页面,在B页面做数据更新,返回A页面刷新结果;思路:在A页面跳转到B页面的时候使用then函数,在B返回A的时候进行数据刷新操作。 Navigator.of(context).push(MaterialPageRoute(builder: (context) { return OpinionDetails(feedbackModel: _feedbackLoader[index]);//是一个feedbackModel

2020-12-11 10:26:22 705

原创 flutter 监听某个值的变化自动回调

1,创建一个ValueNotifier<>类型的变量 ValueNotifier<bool> isDataNull = ValueNotifier(true);2,有必要初始化的时候初始化 warningLoader.obtainData(true).then((value){ // warningLoader.length= warningLoader.length; isDataNull.value=!(warningLoader.length

2020-12-10 15:19:15 4495 1

原创 实习flutter小技巧 | Provider的使用

provider多与Consumer搭配使用,用于状态管理,类似观察者模式,简单点说就是当某个状态(变量)改变时,相关(引用到这个变量)的widget将会自动重绘,如下是简单例子:当count变量改变的时候自动重绘text Widget的文本,并显示出来;使用步骤:1,引包dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. #

2020-12-03 18:38:19 192

原创 Flutter初学小案例 | 路由渐变动画切换

平时的界面切换一般使用MaterialPageRoute,但是没有什么绚丽的东环效果,可以自己定义一个route实现动画切换,以下例子是渐变切换的例子:import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';class FirstPage extends StatelessWidget{ @override Widget build(BuildContext context) { /

2020-11-27 00:41:10 318

原创 flutter初学小案例 | 底部不规则导航栏

scafford的bottomNavigationBar参数赋值BottomAppBar可以实现,BottomAppBar比BottomNavigationBar灵活,在body参数之外准备好一个fab,使用BottomAppBar的shape属性设置BottomAppBar为一个挖了圆形的矩形,设置fab的位置便可;main:import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';import '

2020-11-25 23:41:21 156

原创 flutter初学小实例1 | 底部导航栏切换

思路:MaterialApp是提供了bottomnavigationbar的,可以使用,这个已经提供了的widget,再利用每次点击tab的时候使用set state方法来更新屏幕,切换中间的body的widget;main文件:import 'package:flutter/cupertino.dart';import 'package:flutter/material.dart';import 'package:flutter_app1/MyBottomNavigationBar.dart';

2020-11-25 20:28:15 151

原创 Meet实战| 通过融云+Litepal将添加好友的信息保存

思路:1,确定要保存的内容,添加好友的验证信息,对方好友的id,添加时间,还有验证的状态(待确认-1;同意0;拒绝1)2,利用融云的消息机制,在发送文本消息的基础上再次自定义协议,增加一个add_Friend的type用于证明是添加好友的消息,所以message的content将是message(验证消息+type),接着收到消息的时候使用Gson将message解析,判断type是否为add_friend,如果是的话,就证明是添加好友的消息,而不是普通的文本消息。涉及到的Gson解析类为TextBea

2020-11-08 10:58:56 468

原创 简单MVP架构实现+回调练习

回调:A实现接口Callback,重写了方法callback(),在这里callback方法是具体的实现方法,我的理解是回调向外暴漏接口,但是需要数据,要通过B类的数据实现不一样的重写。B中含有某个方法,这个方法的有一个参数是实现了A的实例(A实现了接口),B的这个方法也可以获得外部重写方法所需要的数据,所以在B 的这个方法中才是真正调用已经重写好的外部方法。实例:接口ResultListener相当于接口Callback,里面的getResult方法相当于callback()方法。package

2020-10-29 00:27:54 161

原创 没有内外边距的NopaddingTextView

package com.siyusoulmate.mm.ui;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.Typeface;import android.util.Attr

2020-10-28 13:33:05 397

转载 Gradle下载慢解决

gradle下载慢的解决:使用mavengradle一直syn的解决:下载gradle至本地

2020-10-19 13:03:12 152

转载 lambda表达式

https://blog.csdn.net/qq_28410283/article/details/80618456

2020-10-14 17:39:46 42

原创 实习新技能|将sqlite数据库与apk一起打包

原理:查了挺多资料,发现没有真正意义上的将sqlite和apk一起打包,这里通过将默认路径下的sqlite数据库复制到assets目录下,apk在首次打开的时候会判断sqlite的默认路径是否存在这个数据库,如果不存在,就将assets目录下的已经保存的数据库,通过IO流的形式复制到database路径下。1,将data/data/项目包名/database/下你的数据库复制到assets目录下;2,在app启动的时候判断在data/data/database/目录下存在你要的数据库,如果存在不进行

2020-08-26 10:00:48 1124

原创 onTouch之后onclick的执行情况

入口:View.java的dispatchTouchEvent()下图是方法中的重要代码:1,首先看一下li是什么:由上述代码可见,li不会为空;2,再看li.mOnTouchListener是否为空由上代码看出,li.mOnTouchListener是我们自己写的touchListener不会为空;3,再看 (mViewFlags & ENABLED_MASK) == ENABLED,这代表控件是否可点击;一般没有特别设定,控件都是可点击的,所以也为true;4,所以当我们传

2020-08-17 14:07:01 212

空空如也

空空如也

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

TA关注的人

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