自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android自定义控件开发入门与实战(10)Shader

接下来,将BitmapShader缩放到与控件的宽、高一致(setScale),由于我们要画的是一幅圆形图像,所以必须将图像缩放成一个正方形,只要正方形的边长与控件的宽度一致即可。第二步,在mDx、mDy都不是-1时,将新建的mBitmapBG作为BitmapShader设置给Paint,然后在手指所在的位置画圆,把圆圈部分的图像显示出来。positions[]与渐变的颜色相对应,取值是0-1的Float类型数据。原理是做一个渐变的图像,和一段文字,然后渐变头像在文字上进行移动,使文字发光,变换颜色。

2025-01-16 15:54:19 819

原创 Android自定义View——一个通用的折线趋势图组件

/注意,就是这个float,我之前没加,结果精度变了,小数点后的都为0了,怪自己太粗心啊。

2025-01-16 15:52:56 201

原创 Android春招总结:论一个本科渣渣是怎么逆袭从咸鱼到Offer收割机的?

做的。看我加粗的部分:提出问题+初步解决方案+失败了+失败原因分析+下一步操作+对于这个操作的思考。不要求你解决了什么问题,但是你要体现出来,你真的在思考。这确实是我最近遇到的问题,我解决方案还是使用AndroidM相关库进行的自定义。上面这段话透露了什么?

2025-01-16 14:58:01 674

原创 android文件上传优化分享(切片上传)

通过这两个阶段的重构,安卓端的上传模块初步形成了一个完整的体系,能够满足产品的使用需求,被广泛的应用到各个产品线的业务模块中。通过等比例降低图片的采样率、分辨率、压缩质量等关键因素,大幅度减少输出的像素点数量,达到降低图片的体积的目的。经测试,上传的瓶颈在于上行带宽,所以切片、上传时单线程任务,不会出现10个切片一起上传的情况。文件切片将一个大文件切成若干小文件进行上传,在上传失败的情况下,可以跳过已上传的小文件。步形成了一个完整的体系,能够满足产品的使用需求,被广泛的应用到各个产品线的业务模块中。

2025-01-16 14:56:39 687

原创 Android技能树 — Android存储路径及IO操作小结

这次是讲Android存储路径及IO的基本操作。因为我们在开发的时候会经常这种方便的需求。这篇文章的内容我写的可能很少,都没有细写。别吐槽。o( ̄︶ ̄)oAndroid存储路径脑图列举的是比较常用的。可能哪里会有不全,大家也可以反馈。我可以再修改。

2025-01-16 14:55:17 672

原创 Android告别使用shape标签,自定义实现圆角、背景色、描边Button

因为GradientDrawable是shape标签的具体代码实现,所以,如果我们想通过GradientDrawable来实现圆角等功能需求的话,需要把上一步骤中我们自定义的GradientDrawable来作为button的background,具体代码如下:/**可以设置背景色、指定圆角、描边的宽度和颜色*//**设置背景颜色*/@Override/**设置描边的宽度和颜色*//**设置描边颜色*//**设置四个角的半径*//**

2025-01-16 13:32:40 472

原创 Android动画之帧动画

/java的形式实现。//1.实现帧动画的类(相当于一本空白的小人书)//2.为帧动画添加内容(在小人书里添加内容)MainActivity.java文件如下。android:text=“开启” />android:text=“停止” />//3.将帧动画设置给View做背景。1.利用 Java 代码实现帧动画。//其他操作,如,设置只执行一次。//4.开启动画(相当于翻书)

2025-01-16 13:30:38 693

原创 Android入门项目(六)Android的wifi开发

/ Log.i(TAG, “onReceive: DISCONNECTED:// 断开连接”);Log.i(TAG, “onReceive: WIFI_CONNECT_SUCCESS: // 完成”);Log.i(TAG, “onReceive: ASSOCIATING: // 正在关联”);Log.i(TAG, “onReceive: INVALID: // 无效的”);Log.i(TAG, “onReceive: WIFI 已打开”);

2025-01-16 13:28:36 759

原创 15-Java枚举类详解【干货笔记】

public enum 枚举类名 {// 枚举项1, 枚举项2, 枚举项3, …;// 私有构造方法// 成员变量// 成员方法3、使用如果需要使用很多常量,并且这些常量用在同一个业务场景,那么可以使用枚举类型。【注意】枚举类型都继承java.lang.Enum,所以枚举类不能再继承其它类型。定义枚举项时,多个枚举项之间需要使用隔开,通常使用大写。枚举类型的构造方法使用private修饰通过枚举类名.枚举项名称去访问指定的枚举项枚举类型可以实现接口3.1、普通用法。

2025-01-16 01:31:38 304

原创 14 - vulhub - Django debug page XSS漏洞(CVE-2017-12794)

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务, Django 本身基于 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。

2025-01-16 01:25:25 813

原创 13【装饰器设计模式】

装饰器设计模式(Decorator Pattern):也叫包装器设计模式(Wrapper Pattern),指在不改变原有对象的基础上,动态地给对象添加一些额外的功能。就增加功能来说,装饰器模式相比生成子类更为灵活。装饰设计模式的核心就是功能的扩展(增强),装饰器模式提供了比继承更有弹性的替代方案;

2025-01-16 01:23:23 285

原创 10 - vulhub - Adobe ColdFusion 反序列化漏洞 (CVE-2017-3066)

简介:Adobe ColdFusion是美国Adobe公司的一款动态Web服务器产品,其运行的CFML(ColdFusion Markup Language)是针对Web应用的一种程序设计语言。

2025-01-16 00:11:42 668

原创 1 Oracle数据库常用命令_xshell oracel数据库命令

FROM vprocessavsession b查看当前数据库的并发连接数查看当前有哪些用户正在使用数据:from vsessionavsqlarea b查看数据库指定用户的连接情况XX为用户例如:204 4609399 5841590 6041清除用户下连接进程修改processes和sessions值系统已更改。系统已更改。修改processes和sessions值必须重启oracle服务器才能生效。

2025-01-16 00:07:38 960

原创 【Flutter -- 基础】快速入门 Flutter_flutter开发零基础入门

Flutter app 使用了 Dart 语言,源自于 Google,现在是 ECMA 的标准。Dart 吸收了许多现代语言的特性,比如 Kotlin 和 Swift,同时能被转译成 js 代码。作为一个跨平台框架,Flutter 和 React Native 非常像,因为 Flutter 支持响应式和声明式语法。但和 React Native 不同,Flutter 不需要 Javascript 桥接,这显著提升了 app 的加载时间和整体性能。Dart 是通过 AOT 编译来做到这一点的。

2025-01-15 01:22:30 281

原创 【ES6】Iterator遍历器对象

return {上面的代码定义了 makeIterator 函数,它是一个遍历器生成函数,作用就是返回一个遍历器对象。对数组[ ‘a’,‘b’]执行这个函数,就会返回该数组的遍历器对象(即指针对象)it。指针对象的 next 方法用于移动指针。开始时,指针指向数组的开始位置。然后,每次调next 方法,指针就会指向数组的下一个成员。第 一次调用,指向a;第二次调用,指向b。next 方法返回一个对象,表示当前数据成员的信息。

2025-01-15 01:18:49 945

原创 【Elasticsearch】原理-Elasticsearch数据存储结构与写入流程_我们看到已经创建了与索引名称对应的新目录。 此目录有两个子文件夹 _state和0

记录当前所有可用的segment,每个commitpoint都会维护一个.del文件(es删除数据本质是不属于物理删除),当es做删改操作时首先会在.del文件中声明某个document已经被删除,文件内记录了在某个segment内某个文档已经被删除,当查询请求过来时在segment中被删除的文件是能够查出来的,但是当返回结果时会根据commitpoint维护的那个.del文件把已经删除的文档过滤掉;这个二进制文件是包含集群的全局元数据,前缀后的数字表示集群元数据版本,这是一个严格增加的版本控制方案。

2025-01-15 01:15:06 696

原创 ①万字《详解canvas api画图》小白前端入门教程(建议收藏)_canvasapi教程

canvas元素是HTML5中新增的一个用于绘图的重要元素。在页面中增加一个canvas元素就相当于在网页中添加一块画布,之后就可以利用一系列的绘图指令,在“画布”上绘制图形。在网页上使用canvas元素时,它会创建一块矩形区域。用户可以自定义具体的大小或者设置canvas元素的其他特性。在页面中加人了canvas元素后,可以通过Javascript来控制画布。可以在其中添加图片/线条/文字等,也可以在里面进行绘图设置/高级动画等。

2025-01-14 15:54:33 853

原创 ①万字《详解canvas api画图》小白前端入门教程(建议收藏)_canvasapi教程

canvas元素是HTML5中新增的一个用于绘图的重要元素。在页面中增加一个canvas元素就相当于在网页中添加一块画布,之后就可以利用一系列的绘图指令,在“画布”上绘制图形。在网页上使用canvas元素时,它会创建一块矩形区域。用户可以自定义具体的大小或者设置canvas元素的其他特性。在页面中加人了canvas元素后,可以通过Javascript来控制画布。可以在其中添加图片/线条/文字等,也可以在里面进行绘图设置/高级动画等。

2025-01-14 15:50:51 940

原创 python操作Oracle数据库

其实Python操作Oracle数据库,和Python操作MySQL数据库,基本上都是一样的道理,一通百通。其次,上述设置NLS_LANG环境变量的方式,仅对当前窗口有效。在进行instantclient的安装与配置之前,我先提供给大家一个下载链接,供大家下载,我们直接下载像11或者12这样的高版本,即可。关于其它的增删改操作,都是类似于MySQL,这里就不详细说明。我们需要将instantclient安装包,解压后得到的文件夹,放置在Oracle安装目录下的product的直接字目录下。

2025-01-13 16:12:23 907

原创 Python打牢基础,从12个语法开始!_python打牢基础,从12个语法开始!

*因为对于同一个时刻,不同人的描述可能不同,毕竟文本的形式千变万化,而时间戳使得时间的表达得到了统一,每个时刻只能用唯一的整数或浮点数来表示,同时也便于计算时间差这样的处理。先介绍一下时间戳的概念,时间戳指的是从1970年1月1日0时0分0秒开始,到某一时刻所经历的秒数,可以是整数或者小数,后者的精度更高。列表中的元素是有序对等的,所以是用下标来赋值和访问,而字典中的元素是无序的,所以是用key来操作相应的value。在赋值的时候,如果key已经存在,则会用新的value覆盖已有的value。

2025-01-13 16:08:41 225

原创 Python开源项目(GitHub上Stars最多的10个开源Python项目)

这个开源项目包含的是:收集了Python相关的框架、开源库、软件、学习等等资源。有了它,学好Python不害怕!HTTPie 是一个开源的命令行的 HTTP 工具包,提供命令行交互方式来访问 HTTP 服务。Flask 是一个微型的 Python 开发的 Web 框架开发者都或多或少接触过 linux 接触过命令行,当然肯定也都被命令行狠地“fuck”过。我很多时候都是微不足道的原因导致了命令行出错,例如将 python 输入成 ptyhon,例如将输入成而导致出错,这个时候我会想说:“fuck”。

2025-01-13 16:04:59 621

原创 java基础之修饰符和内部类

又由于接口Inter中有一个show()方法,所以我认为method()方法的返回值类型是一个接口。2:Outer.method().show()可以看出method()方法的返回值是一个对象。B:在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能。本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类)成员位置:在成员位置定义的类,被称为成员内部类。局部位置:在局部位置定义的类,被称为局部内部类。成员位置:在成员位置定义的类,被称为成员内部类。

2025-01-12 16:17:22 912

原创 JAVA基础——标识符&关键字&数据类型

java中一些赋以特定的含义,用作专门用途的字符串称为关键字。注:大多数编辑器会将关键字用特殊方式标出所有java关键字都是小写中文。goto和const虽然从未使用,但也作被为java关键字保留。##Java的常量Java的常量用字符串表示,区分为不同的数据类型。如整数常量:123实型常量:3.14字符常量:‘a’逻辑常量: true,false字符串常量:“helloworld”注意:区分字符常量和字符串常量注意:“常量”这个名词还会用在另外其他语境中表示值不可变的变量。

2025-01-12 16:13:41 615

原创 Java基础——Java学习Day03

类名,接口名,枚举名,采用大驼峰命名法,每个单词的首字母大写,其他小写例如:public static StudientInfo{}变量名,方法名,采用小驼峰命名法,首单词的所有字母小写,后面首字母大写例:String studentName;常量,采用全大写字母,_作为单词分隔例:final int MAX_COUNT=55;包名,反域名法定义。

2025-01-12 16:09:59 806

原创 Django入门

默认内容为空的。

2025-01-11 22:48:31 735

原创 Django4:模板(下)—自定义过滤器_django-filter 在django4

有时候经常会在朋友圈、微博中可以看到一条信息发表的时间,并不是具体的时间,而是距离现在多久。比如刚刚,1分钟前等。这个功能DTL是没有内置这样的过滤器的,因此我们可以自定义一个这样的过滤器。# time\_filter.py文件"""time距离现在的时间间隔1. 如果时间间隔小于1分钟以内,那么就显示“刚刚”2. 如果是大于1分钟小于1小时,那么就显示“xx分钟前”3. 如果是大于1小时小于24小时,那么就显示“xx小时前”4. 如果是大于24小时小于30天以内,那么就显示“xx天前”

2025-01-11 22:44:50 549

原创 DB——postgresql的安装与使用与备份_postgresql

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。后接处理字段和规则,升序:ASC(默认) 降序:DESC。后接处理字段,可以将重复的数据合并,减少冗余。后接条件,达到筛选的效果。在 . 和 . 之间。

2025-01-11 22:33:36 276

原创 Android Sunflower 带您玩转 Jetpack

在 Google I/O 2018 开发者大会上,我们推出了 Android Jetpack,其中包含的 Android 开发架构组件能够帮助您简化开发流程,从而轻松打造出优质应用。开发者能够利用 Jetpack 组件学习最佳实践,减少样板代码,简化复杂任务,进而将精力集中在关键代码上。

2025-01-11 07:47:49 932

原创 Android studio如何使用SVN进行版本控制?

这里说明一点,在Import into Version Control下有Import into Subversion和Share Project(Subversion)两个选项:第一个是直接将项目导入到SVN服务器上,但是这样做本地的项目同SVN服务器没有建立起关联,在导入后项目所有的文件都会变成红色,而且在要提交到SVN服务器时会提示项目不是SVN下的工作副本;第一种方式和第二种方式的区别就在于:第一种是将代码先提交到SVN服务器上,然后再从SVN服务器上更新下来(本地项目同SVN服务器建立联系);

2025-01-11 07:44:07 934

原创 Android Studio 3

现在重新构建并运行您的应用,即可获取完整的分析功能。但请注意,高级分析会减缓您的构建速度,所以仅当您想要开始分析应用时才启用此功能。注:对于原生代码,不可使用高级分析功能。如果您的应用是纯原生应用(不含 JavaActivity类),则不可使用高级分析功能。如果您的应用使用了 JNI,则可使用部分高级分析功能,例如 Event 时间线、GC Event、Java 分配对象和基于 Java 的网络活动,但不能检测基于原生的分配和网络活动。

2025-01-11 07:40:26 648

原创 2024Android大厂高频面试题(字节跳动+阿里+华为+小米等20家大厂面试真题)附面经!

D、不是长久驻留在内存,数据不是持久的,事件过后,若没有保存数据,数据就会消失A、A、 可能为0.1B、 可能为3C、 不可能为-100D、 肯定为0A、SALES表中qty列最小值大于等于30B、SALES表中qty列最小值大于等于40C、SALES表中qty列的数据全部为50D、SALES表中qty列最小值大于等于60A、当第一次启动的时候先后调用onCreate()和onStart()方法B、当第一次启动的时候只会调用onCreate()方法。

2025-01-11 00:30:24 948

原创 2024AndroidBATJ面试题设计模式&算法专题总结

接口通常被用来表示附属描述或行为如:Runnable、Clonable、Serializable 等等,因此当你使用抽象类来表示行为时,你的类就不能同时是 Runnable 和 Clonable(注:这里的意思是指如果把 Runnable 等实现为抽象类的情况),因为在 Java 中你不能继承两个类,但当你使用接口时,你的类就可以同时拥有多个不同的行为。如果你看到一个类的不同实现有着不同的方式来做同一件事,那么就应该用重写(overriding),而重载(overloading)是用不同的输入做同一件事。

2025-01-11 00:26:42 556

原创 2024Android App开发工作必知必会之【性能优化】

(backing store),一个 page 通常包含多个 block,这些 block 不一定是连续的利用文件重布局结合Pagecache 机制可以减少启动过程中的真正 IO 的次数,简单的说,通过文件重布局的目的,就是将启动阶段。需要用到的文件在 APK 文件中排布在一起,尽可能的利用 pagecache 机制,用最少的磁盘 IO 次数,读取尽可能多的启动阶段需要。压力,尤其是比较低端的机器。过多的线程同时跑会让主线程的 Sleep 和 Runnable 状态变多, 增加了应用的启动速度,优化的过。

2025-01-11 00:23:00 1059

原创 JavaWeb快速入门--JQuery(1)

jq – > js : jq对象[索引] 或者 jq对象.get(索引)text(): 获取/设置元素的标签体纯文本内容。html(): 获取/设置元素的标签体内容。如果操作的是元素自定义的属性,则建议使用attr。removeClass():删除class属性值。val(): 获取/设置元素的value属性值。如果操作的是元素的固有属性,则建议使用prop。addClass():添加class属性值。attr(): 获取/设置元素的属性。prop():获取/设置元素的属性。标签选择器(元素选择器)

2025-01-09 08:06:46 2159

原创 JavaScript基础知识第一章---初识JavaScript

浏览器分成两部分:渲染引擎 和 JS 引擎渲染引擎:用来解析HTML与CSS,俗称内核,比如 chrome 浏览器的 blink ,老版本的 webkit;JS 引擎:也称为 JS 解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如 chrome 浏览器的 V8;浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码。

2025-01-09 08:03:57 746

原创 JavaScript之正则表达式的使用方法详细介绍

那么索引要怎么办呢?哎这时候就用到了。

2025-01-09 08:01:16 314

空空如也

空空如也

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

TA关注的人

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