自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(137)
  • 资源 (14)
  • 收藏
  • 关注

原创 3.无重复字符的最长子串

对于一个字符串,我们需要找到无重复的最长子串,比较容易的想法就是双层循环,外层循环遍历每一个字符,内层循环对于每一个字符,找到无重复子串的最大长度,依次记录并比较每个字符开始的无重复子串的最大长度,最后得到的就是想要的结果。这里实现上我们采用了HashMap来记录当前已有的字符,通过HashMap判断是否存在重复的字符,如果存在则记录当前HashMap的长度并与已经找到的最大长度比较;暴力破解法应该是比较容易想到的,想法虽然简单,但其实一些比较巧妙的解法正式基于暴力破解优化而来的。,所以其长度为 3。

2024-08-13 13:17:34 651

原创 1. 两数之和

目标为target,当前值为nums[i],要找到一个x使得x + nums[i] = target,其实就是x = target - nums[i],如果我能知道target - nums[i]的值是否存储也就解决了当前问题。想一想,算法中常用的伎俩空间换时间,如果我能知道target - num[i]是不是存在,那就可以去掉内存循环了。在内存循环中迭代查看i, j的同时,顺便看了下lastIndex - i, lastIndex - j是否就是想要的答案,那这种方式会不会有遗漏呢?击败8%,还能优化。

2024-08-09 18:14:31 694

原创 CSS基础学习之元素定位(6)

属性用于指定一个元素在文档中的定位方式。和属性则决定了该元素的最终位置。

2024-07-17 16:03:30 681

原创 CSS基础学习记录(6)

表示所有属性都参与动画,执行时间是0.5秒(不要少了后面的s),选择器 .box:hover .cover表示当鼠标经过box范围时,将会选择后代.cover,而.cover将属性left设置为0,结果是动画从右边出现,移动到与图像重合。标签选择器img定义了图像的宽高都是200px,.cover类选择器定义了一个宽高都是200px的浮层,该浮层是要覆盖在图片上的,接下来我们调整下浮层的位置,让它覆盖在图像上面。根据前面css的学习,本篇来实践下前面学习的知识,主要实现如下这样的效果。

2024-06-27 18:26:46 830

原创 CSS基础学习记录(5)

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式。HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以。除了提到的 id 和 class 选择器外,第三种选择器为标签选择器,即以 HTML 标签作为 CSS 修饰所用的选择器。class 选择器用于描述一组元素的样式,class 选择器有别于 id 选择器,class 可以在多个元素中使用。属性和值被冒号分开。这四种 CS 选择器有修饰上的优先级,即:内联选择器 > id选择器 > 类选择器 > 标签选择器。

2024-06-23 16:20:37 1002

原创 CSS属性选择器学习记录(4)

语言属性选择器选择任何具有lang属性的元素,其值为连字符分隔的值列表,从选择器中提供的值开始。该值是整个单词,无论是单独像lang="en",或者像连字符(-)连接的如lang ="en-us"都可以。顾名思义,CSS 属性选择器就是指可以根据元素的属性以及属性值来选择元素。具有特定属性的 HTML 元素样式不仅仅是 class 和 id。选择一个lang属性的起始值="en"的所有元素。]选择器用于选择指定属性具有指定值开始的元素。属性的元素样式的例子,使用(属性的元素样式的例子,使用(

2024-06-23 09:25:31 860

原创 CSS伪类学习记录(三)

由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式;由此可以看出,它的功能和 class 有些类似,但它是基于文档之外的抽象,所以叫伪类。在 CSS 定义中,a:hover 必须被置于 a:link 和 a:visited 之后,才是有效的。在 CSS 定义中,a:active 必须被置于 a:hover 之后,才是有效的。在支持 CSS 的浏览器中,链接的不同状态都可以以不同的方式显示。如果在上面的例子的链接已被访问,它会显示为红色。在 IE8 的之前版本必须声明。

2024-06-23 00:48:22 961

原创 CSS伪元素学习记录(二)

虽然CSS3规定了必须使用双冒号,但实际上使用单冒号也可以工作,这是由于CSS的兼容性带来的,但这并不意味着可以无所忌惮的使用单冒号,因为单双冒号的区分,可以给CSS代码带来更高的可读性。在CSS1和CSS2中,伪元素和伪类都采用单冒号进行表示,在CSS3中为了区分伪元素和伪类,规定使用双冒号代表伪元素,单冒号代表伪类,即CSS3标准中应该这么写:​。CSS 伪元素控制的内容和元素是没有差别的,但是它本身只是基于元素的抽象,并不存在于文档中,所以称为伪元素。CSS 伪元素是用来添加一些选择器的特殊效果。

2024-06-22 17:46:46 540

原创 CSS组合选择器学习记录(一)

与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。相邻兄弟选择器(Adjacent sibling selector)可选择紧接在另一元素后的元素,且二者有相同父元素。后代选取器匹配所有指定元素的后代元素。CSS组合选择符包括各种简单选择符的组合方式。普通兄弟选择器选取所有指定元素的相邻兄弟元素。

2024-06-22 16:13:53 371

原创 Linux管道学习(无名管道)

调用失败返回-1,成功返回0;调用成功时该函数会创建一个单向的管道用于进程之间的通讯,返回的管道包含读端和写端,其中fd[0]用于读,fd[1]用于写,写到fd[1]的数据会被内核保存到缓冲区,直到fd[0]读走数据。

2024-01-25 18:14:21 1177

原创 相对布局(RelativeContainer)

为采用相对布局的容器,支持容器内部的子元素设置相对位置关系。子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。下图是一个RelativeContainer的概念图,图中的虚线表示位置的依赖关系。图1相对布局示意图子元素并不完全是上图中的依赖关系。比如,Item4可以以Item2为依赖锚点,也可以以RelativeContainer父容器为依赖锚点。

2024-01-16 16:28:27 1861

原创 使用画布绘制自定义图形(Canvas)

使用CanvasRenderingContext2D对象在Canvas画布上绘制。@Entry@Component//用来配置CanvasRenderingContext2D对象的参数,包括是否开启抗锯齿,true表明开启抗锯齿。//用来创建CanvasRenderingContext2D对象,通过在canvas中调用CanvasRenderingContext2D对象来绘制。build() {//在canvas中调用CanvasRenderingContext2D对象。

2024-01-15 00:15:00 2202

原创 绘制几何图形(Shape)

绘制组件用于在页面绘制图形,Shape组件是绘制组件的父组件,父组件中会描述所有绘制组件均支持的通用属性。具体用法请参考。

2024-01-13 22:23:57 1206

原创 层叠布局(Stack)

层叠布局(StackLayout)用于在屏幕上预留一块区域来显示组件中的元素,提供元素可以重叠的布局。层叠布局通过Stack容器组件实现位置的固定定位与层叠,容器中的子元素(子组件)依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。层叠布局具有较强的页面层叠、位置定位能力,其使用场景有广告、卡片层叠效果等。如图1,Stack作为容器,容器内的子元素(子组件)的顺序为Item1->Item2->Item3。图1层叠布局。

2024-01-13 21:16:23 971

原创 弹性布局(Flex)

弹性布局(Flex)提供更加有效的方式对容器中的子元素进行排列、对齐和分配剩余空间。容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸,在交叉轴方向的尺寸称为交叉轴尺寸。弹性布局在开发场景中用例特别多,比如页面头部导航栏的均匀分布、页面框架的搭建、多行数据的排列等等。图1主轴为水平方向的Flex容器示意图。

2024-01-12 17:07:13 1886

原创 线性布局(Row/Column)

线性布局(LinearLayout)是开发中最常用的布局,通过线性容器Row和Column构建。线性布局是其他布局的基础,其子元素在线性方向上(水平方向和垂直方向)依次排列。线性布局的排列方向由所选容器组件决定,Column容器内子元素按照垂直方向排列,Row容器内子元素按照水平方向排列。根据不同的排列方向,开发者可选择使用Row或Column容器创建线性布局。图1Column容器内子元素排列示意图图2Row容器内子元素排列示意图。

2024-01-12 10:08:34 1848

原创 添加气泡与菜单

其中PopupOptions为系统提供的气泡,通过配置primaryButton、secondaryButton来设置带按钮的气泡。文本提示气泡常用于只展示带有文本的信息提示,不带有任何交互的场景。Popup属性需绑定组件,当bindPopup属性中参数show为true的时候会弹出气泡提示。在Button组件上绑定Popup属性,每次点击Button按钮,handlePopup会切换布尔值,当其为true时,触发bindPopup弹出气泡。气泡分为两种类型,一种是系统提供的气泡。参数来设置自定义的气泡。

2024-01-11 13:30:23 1297

原创 栅格布局(GridRow/GridCol)

栅格布局是一种通用的辅助定位工具,对移动设备的界面设计有较好的借鉴作用。提供可循的规律:栅格布局可以为布局提供规律性的结构,解决多尺寸多设备的动态布局问题。通过将页面划分为等宽的列数和行数,可以方便地对页面元素进行定位和排版。统一的定位标注:栅格布局可以为系统提供一种统一的定位标注,保证不同设备上各个模块的布局一致性。这可以减少设计和开发的复杂度,提高工作效率。灵活的间距调整方法:栅格布局可以提供一种灵活的间距调整方法,满足特殊场景布局调整的需求。

2024-01-11 10:32:27 2793

原创 创建网格(Grid/GridItem)

网格布局是由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局,其使用场景有九宫格图片展示、日历、计算器等。ArkUI提供了Grid容器组件和子组件GridItem,用于构建网格布局。Grid用于设置网格布局相关参数,GridItem定义子组件相关特征。Grid组件支持使用条件渲染、循环渲染、懒加载等渲染控制方式生成子组件。

2024-01-10 13:33:50 1107

原创 创建轮播(Swiper)

组件提供滑动轮播显示的能力。Swiper本身是一个容器组件,当设置了多个子组件后,可以对这些子组件进行轮播显示。通常,在一些应用首页显示推荐的内容时,需要用到轮播显示的能力。

2024-01-09 13:14:10 1644

原创 鸿蒙应用中的通知

应用可以通过通知接口发送通知消息,终端用户可以通过通知栏查看通知内容,也可以点击通知来打开应用。通知常见的使用场景:显示接收到的短消息、即时消息等。显示应用的推送消息,如广告、版本更新等。显示当前正在进行的事件,如下载等。HarmonyOS通过ANS(Advanced Notification Service,通知系统服务)对通知类型的消息进行管理,支持多种通知类型,如基础类型通知、进度条类型通知。

2024-01-05 16:44:44 1827

原创 TypeScript 类

TypeScript 是面向对象的 JavaScript。类描述了所创建的对象共同的属性和方法。支持面向对象的所有特性,比如 类、接口等。− 字段是类里面声明的变量。字段表示对象的有关数据。− 类实例化时调用,可以为类的对象分配内存。− 方法为对象要执行的操作。

2024-01-05 14:05:58 804

原创 TypeScript接口、对象

以下实例中,我们定义了一个接口 IPerson,接着定义了一个变量 customer,它的类型是 IPerson。customer 实现了接口 IPerson 的属性和方法。接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。接口继承就是说接口可以通过其他接口来扩展自己。接口中我们可以将数组的索引值和元素设置为不同类型,索引值可以是数字或字符串。接口不能转换为 JavaScript。

2024-01-05 11:28:09 574

原创 TypeScript中的元组、Map及联合

这里介绍下TypeScript中的元组、Map、联合;元组这个概念在Java中并没有,但是用过kotlin的肯定比较熟悉,Map算是数据结构中一个比较熟悉的概念了;而联合在Java中是没有这个概念的,C++中则有union类型的支持。

2024-01-05 10:24:38 1796

原创 鸿蒙应用中图片的显示(Image组件)

开发者经常需要在应用中显示一些图片,例如:按钮中的icon、网络图片、本地图片等。在应用中显示图片需要使用Image组件实现,Image支持多种图片格式,包括png、jpg、bmp、svg和gif,具体用法请参考组件。该接口通过图片数据源获取图片,支持本地图片和网络图片的渲染展示。其中,src是图片的数据源,加载方式请参考。

2024-01-04 15:02:40 5014

原创 TypeScript Array(数组)

数组对象是使用单独的变量名来存储一系列的值。这样看起来就简洁多了。

2024-01-04 11:03:21 862

原创 TypeScript函数

我们知道鸿蒙开发用的是ts语言(TypeScript),所以这里穿插介绍下ts的函数,注意介绍些于Java有差别或者特殊的地方。

2024-01-04 10:16:41 964

原创 页面间转场动画

两个页面间发生跳转,一个页面消失,另一个页面出现,这时可以配置各自页面的页面转场参数实现自定义的页面转场效果。效果写在pageTransition函数中,通过PageTransitionEnter和PageTransitionExit指定页面进入和退出的动画效果。上述接口定义了PageTransitionEnter和PageTransitionExit组件,可通过slide、translate、scale、opacity属性定义不同的页面转场效果。

2024-01-03 11:28:45 1240

原创 页面间动画之放大缩小视图

在不同页面间,有使用相同的元素(例如同一幅图)的场景,可以使用动画衔接。为了突出不同页面间相同元素的关联性,可为它们添加共享元素转场动画。如果相同元素在不同页面间的大小有明显差异,即可达到放大缩小视图的效果。其中根据sharedTransitionOptions中的type参数,共享元素转场分为Exchange类型的共享元素转场和Static类型的共享元素转场。

2024-01-03 11:04:27 547

原创 页面内动画之弹簧曲线动画

ArkUI提供了,指定了动画属性从起始值到终止值的变化规律,如Linear、Ease、EaseIn等。同时,ArkUI也提供了由弹簧振子物理模型产生的弹簧曲线。通过弹簧曲线,开发者可以设置超过设置的终止值,在终止值附近震荡,直至最终停下来的效果。弹簧曲线的动画效果比其他曲线具有更强的互动性、可玩性。弹簧曲线的接口包括两类,一类是,另一类是和,这两种方式都可以产生弹簧曲线。

2024-01-03 10:48:53 1012

原创 页面内动画之组件内转场动画

组件的插入、删除过程即为组件本身的转场过程,组件的插入、删除动画称为组件内转场动画。通过组件内转场动画,可定义组件出现、消失的效果。函数的入参为组件内转场的效果,可以定义平移、透明度、旋转、缩放这几种转场样式的单个或者组合的转场效果,必须和一起使用才能产生组件转场效果。

2024-01-03 10:27:17 850

原创 页面内动画之布局更新动画

(animateTo)和(animation)是ArkUI提供的最基础和常用的动画功能。在布局属性(如)发生变化时,可以通过属性动画或显式动画,按照动画参数过渡到新的布局参数状态。动画类型特点显式动画闭包内的变化均会触发动画,包括由数据变化引起的组件的增删、组件属性的变化等,可以做较为复杂的动画。属性动画动画设置简单,属性变化时自动触发动画。

2024-01-03 09:58:05 1094

原创 转场动画&路径动画

转场动画有三种类型,页面间转场、组件内转场、共享元素转场。

2023-12-26 00:15:00 337

原创 ArkUI动画概述

动画的原理是在一个时间段内,多次改变UI外观,由于人眼会产生视觉暂留,所以最终看到的就是一个“连续”的动画。UI的一次改变称为一个动画帧,对应一次屏幕刷新,而决定动画流畅度的一个重要指标就是帧率FPS(Frame Per Second),即每秒的动画帧数,帧率越高则动画就会越流畅。动画参数包含了如动画时长、变化规律(即曲线)等参数。ArkUI提供的动画能力按照页面的分类方式,可分为页面内的动画和页面间的动画。如下图所示,页面内的动画指在一个页面内即可发生的动画,页面间的动画指两个页面跳转时才会发生的动画。

2023-12-25 14:59:51 536

原创 LazyForEach常见使用问题

上篇我们介绍了LazyForEach的基本使用,展示了如何使用LazyForEach构造一个列表,并演示数据的添加、删除、修改如何与LazyForEach配合并正确的更新UI。本篇将介绍使用LazyForEach的时候会遇到的一些常见问题。

2023-12-25 14:24:04 676

原创 方舟开发框架(ArkUI)概述

ArkTSArkTS是UI开发语言,基于TypeScript(简称TS)语言扩展而来,是TS的超集。扩展能力包含各种装饰器、自定义组件、UI描述机制。状态数据管理作为基于ArkTS的声明式开发范式的特色,通过功能不同的装饰器给开发者提供了清晰的页面更新渲染流程和管道。状态管理包括UI组件状态和应用程序状态,两者协作可以使开发者完整地构建整个应用的数据更新和UI渲染。ArkTS语言的基础知识请参考学习ArkTS语言。布局布局是UI的必要元素,它定义了组件在界面中的位置。

2023-12-24 21:36:24 1462

原创 数据懒加载LazyForEach

LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。

2023-12-24 17:37:47 486

原创 渲染控制之条件渲染

ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。

2023-12-23 00:15:00 73

原创 循环渲染ForEach

Android开发中我们有ListView组件、GridView组件、RecyclerView组件,这些组件可以为我们创建一个列表;在鸿蒙开发中,则不一样,它没有类似Android中的组件,但是却提供了循环渲染机制ForEach接口帮助我们渲染一个列表,本节主要介绍该主题。ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为。

2023-12-23 00:15:00 1685

原创 状态管理概述

ArkTS UI的状态管理到这里就叙述完了,现在做一个概述,也可以认为是一个总结。在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。自定义组件拥有变量,变量必须被装饰器装饰才可以成为状态变量,状态变量的改变会引起UI的渲染刷新。如果不使用状态变量,UI只能在初始化时渲染,后续将不会再刷新。

2023-12-22 13:23:09 271

CoolCleaner

手机垃圾清理软件,酷炫的动画、无缝界面切换,多种清理功能:内存清理、大文件清理、广告垃圾清理、定时清理、通知栏清理;让你的手机如丝般流畅运行。

2020-12-06

XML的三种解析方式

示例了DOM、SAX、PULL三种解析XML的方式(还包括怎么用PULL来保存对象到XML文件中)。

2015-06-01

ToucheventDemo2

模拟touch event的事件传递过程,包括向下传递和向上冒泡处理的两个过程(需要自己根据不同的分发函数返回不同的值来模拟)。

2015-05-25

Activity生命周期(二)

Activity在横竖屏切换下的生命周期变化。

2015-05-22

Activity生命周期(一)

基本的Activity生命周期过程,有助于理解Activity生命周期的运行,适合初学者。

2015-05-22

FragmentDemo

Fragment的基本使用技术,在不涉及到整个页面跳转的时候只进行fragment的跳转,很方便使用。

2015-05-21

图片上传服务器端(Android图片上传)

Android图片上传服务器端,支持多文件上传。

2015-05-19

SelectPicDemo(Android文件上传)

Andrid上传文件客户端,支付同时上传多个文件。

2015-05-19

C语言实例解析精粹.iso

里面含有各种查找排序还有图算法,用C语言实现!希望对学习C语言开发的朋友有有帮助;

2011-12-28

C语言实例解析精粹

用C语言编写的各种算法和实例,特别适和C语言学者,里面有各种排序查找算法。图算法

2011-12-28

对称加密代码

实现对称加密技术(基于MFC界面),利用C++编程的代码系列,希望对学习CryptoAPI的同学有帮助

2011-12-24

学习MFC的一个简单示例

实现简单的加法和减法的程序,主要是MFC的入门的一个简单程序

2011-12-24

文件加密程序

里面包括了公钥加密、对称加密、数字签名算法(C++ MFC实现,且界面以及美化)!

2011-12-22

银行存取款的一个C++程序

建立一个文本文件。用于盛放数据。然后顺序建立文本文件。最后在查询时顺序读取文本文件的内容。并且省去标题行。

2009-07-08

空空如也

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

TA关注的人

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