自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

假装你是大灰狼的专栏

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(430)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android StackLayout简单应用

计算高度的方法后,我们自定义了一个文本显示控件,中计算高度的部分,并从中找到了答案。得到的,由此可见,文字的管理是通过。内部会根据不同的设置,创建不同的。高度的时候,计算完高度后对。从上面的代码中我们可以看到。,用它来计算文本高度。在这里我们主要研究了。

2023-03-15 14:38:33 121

原创 Android RecyclerView实现简易聊天工具

实现一个简易聊天工具需要一个消息列表,一个消息编辑框和消息发送按钮。我们利用来显示控件,并实现来加载以往的消息。我们用记录消息内容,实现了一个简单的消息界面,一个头像和文本消息。实现了简单的界面逻辑,利用Timer,我们我们每隔一段时间刷线最新消息。和接口分别用来刷新最新消息和下拉以前的消息。显示如下。

2023-03-13 13:53:33 205

转载 Android Kotlin 常用函数let, with, run, apply用法与区别案例详解

可以把lambda理解为就是一个对象,但这个对象比较特殊,它是一段代码,既然是对象就可以作为函数的参数使用。函数有2个参数,第一个参数为要处理的对象,最后一个是lambda参数,根据规则1,放在了圆括号后边。函数写法和lambda的规则可以看出,它只有一个lambda参数,并且这个lambda的参数也只有一个,就是调用者对象本身。这些函数使用率是非常高的,有时候可以通用,差别很小,但如果能记住他们的不同点,可以更加合理的选择使用。:如果lambda表达式只有一个参数时候,不用声明参数,可以用隐式名称。

2022-11-16 17:17:26 256

原创 Android 实现GIF播放的几种方式

这4种方式都能很好地在手机上运行,但在小米盒子上出现了不同的问题。Glide本身就是很好用的图片框架,但在小米盒子上出现了运行缓慢的问题,一个3秒的GIF图片需要十几秒的时间才能跑完。没有出现运行缓慢的问题,但刷新闪烁比较严重。Movie能正常显示GIF图片,但如果想只运行一次的情况下,很难显示到最后一帧的图片。最大的问题是版本要求太高,需要Android9.0。

2022-11-08 10:44:41 2043

转载 iOS Universal Link 简介

说起,我们不由就会想起URL Scheme,在出来之前iOS这边使用的一直都是URL Scheme进行APP之间的跳转,当然在Safari中也可以通过scheme://跳转APP。但是每次跳转之前都会弹出系统级提示,询问是否打开,如果设备中没有安装此App则会直接弹出错误提示,体验不友好。熟悉iOS开发的同学也肯定对这个东西不陌生。

2022-10-24 16:53:28 189

原创 Android Pdf第三方框架

导入AndroidPdfViewer在里面添加库布局文件引用PDFView为我们提供了以下几种读取文件的方法:主要方法其他方法github地址: https://github.com/barteksc/AndroidPdfViewer导入mupdf在里面添加库mupdf提供了解析代码, 读取pdf文件,把pdf转换成图片显示。是 MuPDF 为 Android 平台提供的查看器,它的代码可以通过 Git 下载得到:我们可以把作为一个模块拷贝到自己的项目中,直接使用

2022-09-23 18:04:22 1301

原创 Android SubsamplingScaleImageView简单应用

SubsamplingScaleImageView是一个图片浏览库,支持点击和缩放,支持长图和超大图。目前只支持本土访问,可配合图片管理工具使用。如果加载的是长图,图片也会居中显示。加载后的图片会居中显示,

2022-09-20 18:08:05 690

原创 Android PhotoView简单应用

PhotoView是一个图片浏览器,支持多点触摸来进行图片的滚动和缩放。

2022-09-20 13:26:17 1354

原创 Android Glide应用中遇到问题

在实际项目中,我们往往会有一些特殊需要。比如我们通过url返回图片的字节流,还需要Base64解码才能使用。定义类,继承,需要实现函数class GlideDownloadPic(val picUrl : String) : Key {定义,继承。Factory继承,在后面注册时使用。函数用来获取图片数据。{定义,继承。.........

2022-08-31 16:30:50 665

转载 iOS Podfile文件用法详解

前言iOS开发会经常用到cocoapods管理第三方,简单、方便、高效。如何集成cocoapods在cocoapods官网和Podfile语法说明会有详细介绍,本文我想介绍的是关于集成cocoapods时会用到的一个文件Podfile文件。什么是Podfile`Podfile是一个规范,描述了一个或多个一套工程目标的依赖项一个简单写法:target 'MyApp' do pod 'AFNetworking', '~> 3.0'end这是最简单最普遍的写法,针对MyApp这个targ

2022-03-02 17:15:40 2068

原创 iOS CAEmitterLayer动画

1. CAEmitterLayerCAEmitterLayer是一个高性能的粒子引擎,被用来创建复杂的粒子发射动画,而所谓的粒子就是CAEmitterCell。可以把CAEmitterLayer看做CAEmitterCell的容器,CAEmitterCell可以进行个性化定制。CAEmitterLayer主要属性// 粒子数组@property(nullable, copy) NSArray<CAEmitterCell *> *emitterCells;// 发射源中心点位置,默认是

2022-02-15 18:07:07 940

转载 iOS Background Modes

iOS 后台运行的规则应用的运行状态分为以下五种:Not running: 应用还没有启动,或者应用正在运行但是途中被系统停止。Inactive: 当前应用正在前台运行,但是并不接收事件(当前或许正在执行其它代码)。一般每当应用要从一个状态切换到另一个不同的状态时,中途过渡会短暂停留在此状态。唯一在此状态停留时间比较长的情况是:当用户锁屏时,或者系统提示用户去响应某些(诸如电话来电、有未读短信等)事件的时候。Active: 当前应用正在前台运行,并且接收事件。这是应用正在前台运行时所处的正常状态S

2022-02-09 17:48:51 670

原创 iOS AVAudioPlayer简介

1. AVAudioPlayerAVAudioPlayer在AVFoundation框架下,AVAudioPlayer类封装了播放单个声音的能力。播放器可以用NSURL或者NSData来初始化,要注意的是NSURL必须是本地文件URL,因为AVAudioPlayer不具备播放网络音频的能力。- (nullable instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;- (nullable instance

2022-02-07 16:21:53 2005

转载 iOS AVAudioSession详解

音频输出作为硬件资源,对于iOS系统来说是唯一的,那么要如何协调和各个App之间对这个稀缺的硬件持有关系呢?iOS给出的解决方案是AVAudioSession ,通过它可以实现对App当前上下文音频资源的控制,比如插拔耳机、接电话、是否和其他音频数据混音等。当你遇到:是进行录音还是播放?当系统静音键按下时该如何表现?是从扬声器还是从听筒里面播放声音?插拔耳机后如何表现?来电话/闹钟响了后如何表现?其他音频App启动后如何表现?…这些场景的时候,就可以考虑一下AVAudioSession

2022-01-21 15:30:12 1305

转载 iOS SDWebImage详细介绍

在iOS的图片加载框架中,SDWebImage使用频率非常高。它支持从网络中下载且缓存图片,并设置图片到对应的UIImageView控件或者UIButton控件。在项目中使用SDWebImage来管理图片加载相关操作可以极大地提高开发效率,让我们更加专注于业务逻辑实现。本文讲解的版本为4.4.2版本。一、SDWebImage 概论SDWebImage是个支持异步下载与缓存的UIImageView扩展。项目主要提供了一下功能:1.提供了一个UIImageView的category用来加载网络图片并且对

2022-01-18 16:11:52 860

转载 iOS OpenUDID源码解析

在iOS的生态中,有我们所熟知的IDFA,IDFV,UDID,UUID。简直能把人整晕。但是他们含义不同,应用场景不同。为了能在我们的业务中更好的标识一个唯一设备,我们引入OpenUDID类库。而在介绍这个库之前,我们先来看看,上面说的这几个编码到底有哪里不同,以及如何应用。一、IDFAIDFA是一串16进制的32位串。全称是Identifier For Advertising设计目的是,标识用户设备,用于提供给各个APP之间跟踪广告所用。例如,你在淘宝里搜索了某个商品之后,你在用浏览器去浏览

2022-01-17 10:29:00 398

原创 iOS MJRefresh使用

MJRefresh封装了上下拉刷新的功能。1. 下拉刷新1.1 MJRefreshStateHeader在viewDidLoad中指定列表的mj_header属性,即可实现下拉刷新功能- (void)viewDidLoad { [super viewDidLoad]; ... ... __weak typeof(self) weakSelf = self; MJRefreshStateHeader *header = [MJRefreshStateHead

2022-01-14 16:42:42 2568

原创 iOS SVProgressHUD使用

SVProgressHUD是轻量级的弹出窗提示效果,使用起来相当简单方便。1. SVProgressHUD弹窗SVProgressHUD可以显示一直旋转的进度条,// 显示一直旋转的进度条+ (void)show;// 显示一直旋转的进度条和状态+ (void)showWithStatus:(nullable NSString*)status;SVProgressHUD可以显示具体进度的进度条。// 显示进度条,progress为 0~1+ (void)showProgress:(fl

2022-01-13 15:23:45 3139

原创 iOS UIViewController跳转

1. UINavigationController跳转UIViewController可以利用UINavigationController跳转,采用压栈和出栈的方式,进行UIViewController的管理。// 添加指定控制器,并显示- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated;// 弹出控制器,显示上一个控制器- (nullable UIViewController

2022-01-11 15:35:09 2035

原创 iOS Certificates, Identifiers & Profiles简介

1. CertificatesCertificates是生成开发和生产所需的证书。2.1 certSigningRequest文件生成证书前,需要先生成certSigningRequest文件,certSigningRequest文件由【钥匙串访问】生成。选择菜单【钥匙串访问】,【证书助理】下的【从证书颁发机构请求证书…】填写【用户电子邮件地址: 】,将【请求是:】的选项改为【储存到磁盘】输入certSigningRequest文件的文件名,并指定保存位置。保存certSignin

2022-01-10 15:29:33 1672

原创 iOS UITableView控件

1. UITableViewUITableView继承自UIScrollView,可以用来展示一组或多组内容样式相似的数据。UITableView可以说是iOS开发中最重要的控件之一。2. UITableView样式UITableView的两种样式UITableViewStylePlain和UITableViewStyleGrouped。UITableViewStylePlain样式,当一个section的rows有一部分可见时,section的header和footer浮动在内容顶部。UITab

2022-01-05 13:22:56 1692

转载 iOS WKWebView的使用

前言最近项目中的UIWebView被替换为了WKWebView,因此来总结一下。示例Demo:WKWebView的使用本文将从以下几方面介绍WKWebView:1、WKWebView涉及的一些类2、WKWebView涉及的代理方法3、网页内容加载进度条和title的实现4、JS和OC的交互5、本地HTML文件的实现6、WKWebView+UITableView混排7、WKWebView离线缓存功能一、WKWebView涉及的一些类WKWebView:网页的渲染与展示注意: #i

2021-12-27 18:06:04 895

转载 iOS WKWebView的使用--API篇

WKWebView是苹果在iOS 8之后推出的框架WebKit中的浏览器控件, 其加载速度比UIWebView快了许多, 但内存占用率却下降很多, 也解决了加载网页时的内存泄露问题. 现在的项目大多数只需适配到iOS 8, 所以用WKWebView来替换项目中的UIWebView是很有必要的.WKWebView的使用主要涉及下面几个类:WKWebViewWKWebViewConfigurationWKUserScriptWKUserContentControllerWKWebsiteDataS

2021-12-27 15:31:46 909

转载 iOS 程序执行顺序和UIViewController的生命周期

一. iOS程序的启动执行顺序程序启动顺序图具体执行流程1.程序入口进入main函数,设置AppDelegate称为函数的代理2.程序完成加载[AppDelegate application:didFinishLaunchingWithOptions:]3.创建window窗口4.程序被激活[AppDelegate applicationDidBecomeActive:]5.当点击command+H时(针对模拟器,手机是当点击home键)程序取消激活状态[AppDelegate a

2021-12-22 15:05:04 311

转载 IOS 多线程:『GCD』详尽总结

1. GCD 简介什么是 『GCD』 ?我们先来看看百度百科的解释简单了解下相关概念。引自 百度百科Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。在 Mac OS X 10.6 雪豹中首次推出,也可在 iOS 4 及以上版本使用。那为什么我们要使用 GCD 呢?因为使用 GCD 有很多好处啊,具体如下:GCD 可用于多核的并

2021-12-14 17:57:14 161

转载 iOS Objective-C nil, Nil, NULL和NSNull的区别

1. nil 对象为空NSObject* obj = nil;if (nil == obj) { NSLog(@"obj is nil");} else { NSLog(@"obj is not nil");}2. Nil 类为空Class someClass = Nil;Class anotherClass = [NSString class];3. NULL 基本数据对象指针为空int *pointerToInt = NULL; char *pointerToCh

2021-12-10 17:44:15 85

转载 Python matplotlib.pyplot常用函数讲解大全(一)

前言接着上一篇matplotlib.pyplot的使用总结大全(入门加进阶)继续来学习总结,如果有同学不小心刷到这篇文章,不妨先看看上一篇关于画图的一些修饰通用函数的讲解。这一篇主要总结几种常用的画图函数,让我们开始动动小手画画吧。摩拳擦掌中,,,一,bar()函数:条形图参数说明参数说明接收类型X(之前为left)x轴坐标int,float,一般为数组或列表height条形的高度同xwidth条形宽度0~1,默认0.8linewidth边框宽度

2021-12-07 12:49:47 1065

转载 Python matplotlib.pyplot的使用总结大全(入门加进阶)

前言其实一年前就有想法好好学学python里的画图库matplotlib库,主要是因为每次可视化一些结果的时候,都是搜一些别人写好的代码,看的时候感觉乱乱的,不是说别人写的乱,而是每个人在某些点上实现的方式不太一样,还有就是觉得,总用别人的,就觉得不是自己创造的,没有成就感。这段时间做了个比赛,可视化分析的时候,又在搜代码,想自己加点东西,感觉很费劲,又不知道该怎么加,所以决定好好学一下,并做好总结。准备工作我们需要先安装matplotlib库,然后导入库,这些很简单,我就不讲了,哦,把numpy也

2021-12-07 10:48:46 1739

转载 Python matplotlib不显示中文的问题

在很长一段时间里用Python绘图,matplotlib都不能很好的显示中文,起初是认为我的pycharm里的设置问题,但是发现同样的问题在spyder里也同样的出现了,虽然有的地方可以用英文实在不行用拼音。。。但是在作图这里没有中文真的是太不方便了,机缘巧合下在年前终于找到问题的根源了,于是乎爱刨根问底儿的我把整个过程的解决方法分享给大家~~一共有两种解决方案,我强烈推荐第一种,因为更为方便,绘图时不用再写别的参数,调用一次即可,第二种方法也会写出来但是更多的是作为了解,主要因为相比之下太麻烦方法一:

2021-12-06 15:11:23 968 1

转载 Python Pandas 第9章 时序数据

import pandas as pdimport numpy as np一、时序的创建四类时间变量现在理解可能关于③和④有些困惑,后面会作出一些说明名称 描述 元素类型 创建方式① Date times(时间点/时刻) 描述特定日期或时间点 Timestamp to_datetime或date_range② Time spans(时间段/时期) 由时间点定义的一段时期 Period Period或period_range③ Date offsets(相对时间差) 一段时间的相对大小(与夏

2021-12-03 15:33:50 193

转载 Python Pandas 第8章 分类数据

>>> import pandas as pd>>> import numpy as np>>> df = pd.read_csv('data/table.csv')>>> df.head() School Class ID Gender Address Height Weight Math Physics0 S_1 C_1 1101 M street_1 173 63 34.0 A+1 S_1 C_1 1102 F st

2021-12-03 13:57:19 184

转载 Python Pandas 第7章 文本数据

import pandas as pdimport numpy as np一、string类型的性质1. string与object的区别string类型和object不同之处有三:① 字符存取方法(string accessor methods,如str.count)会返回相应数据的Nullable类型,而object会随缺失值的存在而改变返回类型② 某些Series方法不能在string上使用,例如: Series.str.decode(),因为存储的是字符串而不是字节③ string类

2021-12-02 18:02:32 81

转载 Python Pandas 第6章 缺少数据

Pandas在步入1.0后,对数据类型也做出了新的尝试,尤其是Nullable类型和String类型,了解这些可能在未来成为主流的新特性是必要的import pandas as pdimport numpy as npdf = pd.read_csv('data/table_missing.csv')df.head() School Class ID Gender Address Height Weight Math Physics0 S_1 C_1 N

2021-12-02 17:12:34 156

转载 Python Pandas 第5章 合并

import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv')df.head() School Class ID Gender Address Height Weight Math Physics0 S_1 C_1 1101 M street_1 173 63 34.0 A+1 S_1 C_1 1102 F street

2021-12-01 17:05:30 146

转载 Python Pandas 第4章 变形

import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv')df.head() School Class ID Gender Address Height Weight Math Physics0 S_1 C_1 1101 M street_1 173 63 34.0 A+1 S_1 C_1 1102 F street

2021-12-01 15:09:40 66

转载 Python Pandas 第3章 分组

import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv',index_col='ID')df.head() School Class Gender Address Height Weight Math PhysicsID 1101 S_1 C_1 M

2021-11-30 13:33:47 168

转载 Python Pandas 第2章 索引

import numpy as npimport pandas as pddf = pd.read_csv('data/table.csv',index_col='ID')df.head()Out[1]:School Class Gender Address Height Weight Math PhysicsID 1101 S_1 C_1 M street_1 173 63 34.0 A+1102 S_1 C_1 F street_2 192 73 32.5 B+1103

2021-11-29 14:34:03 207

转载 Python Pandas 第1章 基础

import pandas as pdimport numpy as np查看Pandas版本pd.__version__'1.0.3'一、文件读取与写入1. 读取(a)csv格式df = pd.read_csv('data/table.csv')df.head()(b)txt格式df_txt = pd.read_table('data/table.txt') #可设置sep分隔符参数df_txt col1 col2 col3 col40 2

2021-11-26 15:21:46 159

转载 Python numpy的基本使用

一、numpy概述numpy(Numerical Python)提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速、节省空间。numpy支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。二、创建ndarray数组ndarray:N维数组对象(矩阵),所有元素必须是相同类型。ndarray属性:ndim属性,表示维度个数;shape属性,表示各维度大小;dtype属性,表示数据类型。创建ndarray数组函数:函数说明arra

2021-11-22 16:14:52 323

转载 Python getopt模块

Python中getopt模块,是专门用来处理命令行参数的getop标准格式:getopt(args, shortopts, longopts = [])shortopts是短参数,类似于这样:python test.py -h # 输出帮助信息longopts是长参数,类似于这样:python test.py --help # 输出帮助信息args指的是当前脚本接收的参数,它是一个列表,可以通过sys.argv获得,在Python里的命令行参数是存储在sys.argv里,argv是一个列表

2021-11-03 14:57:42 516

Python 核心编程(第二版).pdf

超清晰, Python 核心编程(第二版).pdf

2009-01-07

空空如也

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

TA关注的人

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