- 博客(498)
- 收藏
- 关注
原创 Android仿微信图片浏览与显示实践指南
在现代移动应用中,提供一个用户友好的相册界面是提高用户体验的关键之一。自定义相册界面设计不仅能够更好地融入应用的整体风格,还能根据应用的具体需求,实现更加精细的控制和优化。我们的目标是开发一个既美观又高效的相册界面,能够快速响应用户的操作,并且提供流畅的浏览体验。Glide支持自定义图片的变换处理,可以添加各种图像处理效果,例如圆角裁剪、缩放裁剪和模糊效果等。下面是一个实现圆角图片的示例代码:.transform(new RoundedCorners(20)) // 20是圆角的半径大小。
2025-06-23 16:33:20
231
原创 IP地址探测技术及应用深入解析
htmltable {th, td {th {pre {简介:IP地址探测是一项基础网络技术,用于确定IP地址对应的地理位置或网络环境,涉及网络通信、地理位置定位、网络安全等。本文深入探讨了IP地址探测的原理和应用,特别是与淘宝IP地址服务器的关系,包括其稳定性和在线状态的重要性,以及如何应用该技术于网络安全、内容分发网络(CDN)等其他场景。此外,文章还涉及了开发者如何使用编程语言和库来集成IP地址解析功能,并强调了保护用户隐私的重要性。
2025-06-23 16:31:47
148
原创 Vuforia增强现实Scanner 5.0.5:最新AR开发工具包
Vuforia 是一个领先的增强现实(AR)平台,由PTC公司开发,它允许开发者利用AR技术创建互动体验。该平台特别适用于智能手机和平板电脑,使开发者能够在各种应用程序中整合虚拟物体到现实世界场景中。Vuforia Scanner提供了多种扫描模式以适应不同场景和对象的扫描需求。主要的扫描模式包括:快速模式:适合扫描小物体或进行初步扫描。此模式下,Scanner通过快速捕获多张图片来重建对象的3D模型。精细模式:适用于需要高度精确的扫描,例如艺术品和复杂结构。
2025-06-23 15:42:42
200
原创 多次自动控制蓝牙状态的应用程序分析与实现
对于需要多次开启与关闭蓝牙的应用程序,功能模块可以划分为:启动模块:负责应用程序启动时的初始化工作,包括权限请求和蓝牙适配器状态的检查。用户界面模块:提供用户交互界面,显示当前蓝牙状态,允许用户进行开启和关闭操作。蓝牙管理模块:实际进行蓝牙的开启、关闭,以及蓝牙设备搜索、连接和断开操作的处理。状态监听模块:实时监控蓝牙适配器的状态变化,并更新用户界面。异常处理模块:应对应用程序在执行蓝牙操作时可能遇到的各种异常情况,如设备不支持蓝牙、蓝牙已开启/关闭等。
2025-06-23 14:49:43
485
原创 Fragment页面切换简易Demo
Fragment 的布局文件定义了其 UI 界面,它和 Activity 的布局文件类似,可以包含各种视图元素。通过在目录下创建 XML 文件来定义 Fragment 的布局。示例代码:<TextView在该布局中,我们使用了一个作为根元素,并在其中放置了一个TextView控件。每个 Fragment 都会有一个类似的布局定义。一旦设置了监听器,就需要在onClick方法内定义具体的Fragment切换逻辑。这通常涉及到使用来开始一个Fragment事务(
2025-06-23 12:09:09
654
原创 OPC客户端工具2:数据交换与通信的行业标准
OPC(OLE for Process Control)标准是一个工业自动化领域中用于实现软硬件之间无缝连接的技术规范。随着工业自动化设备的种类和数量的不断增多,不同设备之间的通信问题日益凸显,这就需要一种标准化的解决方案,以确保不同厂商生产的设备和软件能够顺利地交换数据。OPC(OLE for Process Control)客户端工具2是为了解决工业自动化控制中数据通信问题而设计的一套综合软件解决方案。
2025-06-23 11:23:12
238
原创 使用jQuery打造高效美观的二级导航条
jQuery 是一个快速、小巧且功能丰富的 JavaScript 库。它通过简化 HTML 文档遍历和事件处理、动画和Ajax交互,使得在网页上实现动态效果变得简单。要在项目中安装和使用 jQuery,您可以选择以下几种方法之一:通过 CDN 引入:将以下代码放置在 HTML 文件的<head>标签内。使用 npm 安装:在您的项目目录中运行以下命令。下载到本地:访问 jQuery 官网下载最新版本,并在HTML中通过<script>标签引入。
2025-06-23 11:02:19
415
原创 深入理解Struts1框架:实例与应用
Struts1是Java EE应用程序的一个流行开源框架,属于Apache软件基金会下的项目。它以MVC(Model-View-Controller)设计模式为基础,用于构建Java Web应用程序。Struts1框架的核心是实现了一个可扩展的动作处理机制,使得开发者可以专注于业务逻辑的开发而无需过多关心数据的展示和用户请求的处理。
2025-06-23 10:46:04
369
原创 Android开发:构建通用ListView适配器实践
在移动应用开发中,列表视图ListView是展示数据的重要组件之一。它能够以垂直滚动的形式展示一系列的条目,广泛应用于各种数据展示场景,如联系人列表、消息列表等。要让ListView正常显示数据,需要通过适配器将数据源与视图进行绑定,这就是ListView适配器的作用。在泛型适配器中定义数据类型是实现泛型功能的关键。泛型数据类型T可以是任何类型,包括自定义的类。开发者需要根据实际应用的场景来选择合适的数据类型。例如,如果适配器用于显示联系人列表,T可能是一个Contact。
2025-06-23 10:29:59
99
原创 批处理脚本批量创建文件指南
批处理文件是DOS操作系统中的一种脚本文件,主要用于自动化执行一系列命令。它们通常以.bat作为文件扩展名,可以包含多个命令和控制结构,使得用户能够以简洁的方式重复执行复杂的任务。DOS命令是批处理文件中执行操作的基础。常见的命令包括:echo:显示信息或启用和禁用命令回显。dir:显示目录中的文件和子目录。cd:更改当前目录。copy:复制一个或多个文件到另一个位置。del:删除一个或多个文件。xcopy:复制文件和目录树。
2025-06-23 10:10:05
393
原创 Visual C++ MFC基础教程:从入门到实践
MFC(Microsoft Foundation Classes)是微软公司为了简化Windows应用程序的开发而提供的一套C++类库。它封装了Windows API的大部分功能,使得开发者可以使用面向对象的方法来编写Windows软件。MFC不仅提供了丰富的界面元素,还提供了文档-视图架构、网络编程支持等高级特性,是早期Windows平台上应用广泛的开发框架。MFC(Microsoft Foundation Classes)是一套由微软公司提供的用于简化Windows应用程序开发的C++库。
2025-06-15 15:19:42
771
原创 机械设计者必备:实用五金手册及重量计算指南.zip
配合是指两个或多个零件组装在一起时相互间的关系。配合的类型通常分为间隙配合、过渡配合和过盈配合。间隙配合是配合面间存在间隙;过渡配合在装配状态下可以是间隙也可以是过盈;过盈配合则是配合面间为过盈状态,需要一定的力才能装配。选择合适的配合类型对于五金件的功能实现至关重要。例如:间隙配合适用于需要相对运动的零件之间,如轴承。过盈配合适用于需要传递扭矩或保持零件位置的场合,如螺栓连接。配合的选择通常依据零件的使用条件、工作环境、载荷特性等因素确定。
2025-06-15 14:34:18
573
原创 中控指纹仪开发包5.2:生物识别技术解决方案
Web服务的集成是让指纹识别技术能够通过互联网为不同系统和设备所用的关键步骤。它让开发者可以轻易地将指纹识别功能融入到自己的应用程序中。
2025-06-15 13:21:52
918
原创 WinForms桌面动画效果深入实践
GDI+是.NET Framework的一部分,它继承了旧版GDI的功能,并加入了更多的特性,比如对图像、字体、文本和图形的操作。在WinForms等桌面应用程序中,GDI+用于绘制图形界面和各种视觉元素,如窗口、控件、图表等。GDI+的一个重要特点是它支持矢量图形和光栅图形,这让设计师和开发者能够创建能够高质量缩放的图形。它还能处理复杂的图形变换和透明效果,使得创建高质量的用户界面成为可能。自定义绘图允许开发者在像素级别上控制绘图过程。
2025-06-15 12:52:48
615
原创 Springboot 定时任务开发与管理
Spring Task是Spring框架中用于处理定时任务的功能模块,它提供了一种非常便捷的方式,使得开发者能够在Spring应用中轻松地调度任务。Spring Task支持基于注解的配置方式,使得定时任务的定义、配置和管理变得简单快捷。借助于Spring的依赖注入机制,定时任务可以很方便地与Spring应用的其他部分进行交互。Spring Task框架中几个核心的注解包括@Scheduled等。@Scheduled用于标记需要定时执行的方法,而则用于启用对定时任务的支持。
2025-06-15 12:23:44
714
原创 探索JDK 1.4和JDK 1.7:Java技术的历史演变
Java作为编程语言的佼佼者,其发展历程中的每一个版本都承载了重要的技术进步。JDK 1.4与JDK 1.7作为Java发展史上的两个重要节点,分别在性能、功能、开发效率和代码质量方面实现了显著的提升。JDK 1.4发布于2002年,这是Java技术发展史上的一个重要里程碑。它不仅增强了Java语言本身,还引入了新的API,为Java带来了重要的性能优化。例如,引入了正则表达式和日志API,极大地提升了字符串处理和日志管理的能力。此外,增强了异常处理机制,使得错误管理更为灵活和高效。
2025-06-15 11:15:12
567
原创 基于RESTful API和Maven模块化的前后端分离框架设计
REpresentational State Transfer(REST)是一种软件架构风格,由Roy Fielding在其博士论文中首次提出。它以资源为中心,通过统一的接口(如HTTP协议)对资源进行获取、更新、创建和删除操作,从而实现了系统间的松耦合。RESTful API以其简洁、易于理解和使用的特点在Web服务设计中广泛采用。定义RESTful API的接口就是为每个资源设计合适的HTTP方法和URI模式。以下是常见的HTTP方法对应的操作:GET:获取资源的表示。
2025-06-15 11:13:34
791
原创 Java飞机大战游戏实战项目详解
游戏开发不仅仅是编写代码,它是一门涉及多个领域的艺术。在Java环境中进行游戏开发,意味着我们需要深入了解Java编程语言以及Java特有的游戏开发库,如AWT, Swing, JavaFX和游戏API,例如LWJGL(Lightweight Java Game Library)。掌握这些基础是开发流畅、富有吸引力游戏的关键。组件的布局管理是指如何在窗口中安排各个组件的位置和大小。在Swing中,常用的布局管理器包括FlowLayoutGridLayout等,而JavaFX则使用。
2025-06-15 10:52:55
701
原创 使用ijkplayer实现多格式音视频播放
随着移动互联网和在线视频服务的迅速发展,一个稳定且功能强大的多媒体播放器框架成为了开发者不可或缺的工具。ijkplayer,作为FFmpeg的一个分支,是开源社区中十分活跃且广泛使用的多媒体播放器框架之一。它不仅支持多种音视频格式,还具备高度的可定制性,使得开发者可以根据项目需求进行调整和扩展。ijkplayer的设计初衷是为了解决移动平台上的多媒体播放问题,同时提供与FFmpeg功能相似但更轻量级的解决方案。
2025-06-15 09:32:10
531
原创 OpenGL摄像头内容显示技术指南
GLSL(OpenGL Shading Language)是一种用于编写着色器的高级语言,它允许开发者在图形管线的各个阶段插入自定义的代码来控制渲染行为。GLSL语法类似于C语言,包含变量、函数、控制结构和注释等基本元素。每个着色器都由一系列的函数组成,最核心的函数包括main(),它在渲染每个图元时被调用。在GLSL中,着色器的主要数据类型包括标量、向量、矩阵、结构体以及采样器等。标量类型有intfloat等,而向量类型如vec2vec3vec4表示二维、三维和四维向量。
2025-06-15 09:25:13
695
原创 个性化生日祝福HTML模板套件
在设计HTML模板时,首先需要定义标签来指示哪些地方是可以替换的。举一个简单的例子:</h1>-- 其他祝福内容 --></div>上面的HTML代码中,就是一个可以替换的标签,用于显示收信人的名字。在本节中,我们将通过编写JavaScript来实现两个核心功能:允许用户输入自己的祝福语,并设置一个密码以访问祝福内容。
2025-06-06 16:53:48
846
原创 STM32与W25Q128 SPI闪存通信详解及驱动实现
STM32微控制器系列因其高性能、低功耗和灵活性而广泛应用于嵌入式系统。W25Q128是Winbond公司生产的SPI闪存芯片,具有128Mb存储空间,支持高速SPI接口。本章首先简述STM32微控制器和W25Q128的基本特性,然后探讨两者之间通过SPI接口进行通信的原理。在此基础上,为后续章节深入探讨QSPI接口的优势和数据传输效率提升作铺垫。在介绍STM32与W25Q128 SPI闪存时,不仅会讨论它们的硬件特性,还会涉及它们在嵌入式系统中的应用优势。
2025-06-06 16:38:38
635
原创 RRT算法在多机器人路径规划中的MATLAB实现
在多机器人路径规划的领域中,MATLAB作为一款强大的数学计算和仿真平台,被广泛应用于算法的开发和验证。本章将详细介绍MATLAB在RRT算法实现中的角色、源码结构和功能模块,以及代码细节的实现。在MATLAB中,工具箱(Toolbox)是一组预定义的函数和应用程序,可以扩展MATLAB的环境以解决特定领域的问题。针对RRT算法和多机器人路径规划的需求,以下工具箱是推荐安装的::提供了开发机器人应用程序所需的算法和工具,例如机器人模型、运动规划和碰撞检测。
2025-06-06 15:12:03
1235
原创 WPS2021二次开发实战指南文档.zip
随着企业信息化的发展和办公自动化的深入,WPS Office 2021作为一款流行的办公软件,其开放的二次开发平台为用户提供了高度的可定制性与扩展性。二次开发不仅能够满足企业特定的办公需求,还能够通过定制功能提高工作效率,降低成本。API(Application Programming Interface)即应用程序编程接口,它是一系列预先定义的函数、协议和工具,用来构建软件应用程序。API允许一个软件应用与另一个软件应用进行交互。
2025-06-06 14:01:27
305
原创 麻雀算法优化核极限学习机(KELM)分类器的MATLAB源码
极限学习机(ELM)是一种单层前馈神经网络,它由Huang等人在2006年提出。ELM的核心优势在于它的学习速度极快,相比于传统的梯度下降方法,ELM不需要迭代过程,能够实现快速训练。其基本原理是通过随机选择隐藏层的参数(权重和偏置),并将输入数据映射到一个高维特征空间,然后通过最小二乘法确定输出权重。为了描述ELM的工作原理,我们可以将其简单概括为以下步骤:1. 随机初始化隐藏层的参数(权重和偏置)。2. 输入数据经过隐藏层节点进行非线性变换,映射到一个高维空间。
2025-06-06 13:52:14
694
原创 华为HCIA-Access【接入网】_完整培训教材和实验指导手册
在数字化时代,接入网作为连接终端用户与核心网络的桥梁,扮演着至关重要的角色。无论是在商业还是个人生活中,一个稳定、高效和安全的接入网环境是信息传递、数据交互的基石。本章将探讨接入网的定义、分类,以及它的应用场景,帮助读者对这一基础设施有全面的认识。接入网,也被称为最后一公里(last mile)网络,指的是从用户端到运营商网络边缘的连接部分。它包括了家庭、办公室、移动设备等与互联网服务提供商(ISP)之间所有通信设备与连接媒介。接入网的重要性在于它直接决定了用户的数据访问速度、网络延迟和整体服务质量。
2025-06-06 13:12:05
140
原创 全面理解VSAT卫星通信系统设计与应用
VSAT(Very Small Aperture Terminal,甚小孔径终端)卫星通信系统是一种使用地球同步卫星进行双向数据传输的小型无线地面站。该系统广泛应用于偏远地区、移动平台、应急通信等领域,以实现远程信息的高速、安全传输。调制是通信系统中一个核心环节,它涉及将信息信号转换为适合传输的格式。调制技术的关键在于将信号的频率、振幅或相位改变,以便于信号能够在物理媒介上有效地传播。
2025-06-06 12:17:50
708
原创 ASP实现特殊节日QQ表情祝福页面源码
集成QQ表情至网站不仅能提高用户的互动体验,还能增加网站内容的趣味性。在资源获取阶段,需关注表情包的流行趋势和用户需求,确保表情包的质量和版权合法。在技术实现阶段,重点在于前端展示技术的应用以及互动功能的代码实现。通过使用HTML、CSS和JavaScript,我们可以实现表情图片的集成,并通过简单脚本赋予其动态的互动性。上述的示例代码展示了基本的实现过程,开发者可以根据自身需求进行相应的优化和调整。
2025-06-06 09:56:46
599
原创 ESP8266与OneNet平台的MQTT通信实现教程
ESP8266是一款带完整TCP/IP协议栈的Wi-Fi SoC模块,内置了32位处理器,支持AT指令集,可轻松连接至互联网。它的尺寸小,功耗低,性价比高,非常适合用于各种物联网项目。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是一种基于发布/订阅模式的轻量级消息协议,设计用于网络通信中的带宽和功耗受限的场景,非常适合物联网设备。MQTT协议被广泛应用于物联网中,作为客户端和服务器之间的通信协议,其主要优势在于:低带宽占用。
2025-06-06 09:32:34
382
原创 C++哈希加密算法库:数据完整性与安全的核心
简介:哈希加密算法在确保数据完整性、消息认证、数字签名及密码存储等方面发挥关键作用。本资源是一套用C++编写的库,实现了多种哈希算法,包括CRC32、MD5、SHA1、SHA256以及SHA3(Keccak),并支持跨平台操作。该库设计为块处理模式,适合大文件处理,且兼容Windows和Linux系统。开发者可利用该库进行文件校验、数据安全存储等任务,确保软件和数据的安全性与完整性。
2025-06-06 09:19:52
368
转载 想靠RAG提升模型回答质量,那是不可能的
自定义分块允许根据文本的具体特点来选择分块方式,比如按章节标题、代码块、表格等进行分块,这样能够精准地控制分块的方式,使得每个分块都能最大程度地保留文档的结构和逻辑。这种方式虽然效果好,但需要对文档进行深入的分析和处理,尤其是针对不规则格式的文档,分块规则可能需要进行动态调整。对于结构化文档(如法律合同、技术手册等),自定义分块可以最精确地保持原文结构并提高检索效率。其次,很多粉丝对向量化的过程以及模型调优的意义是什么不太明白,这里也做简要说明。
2025-06-03 16:14:41
12
原创 Autodesk Inventor API深入学习与实践指南
Autodesk Inventor 是一款广受欢迎的3D CAD设计软件,它为工程和产品设计师提供了一系列强大的工具,用于创建精确的3D模型和数字原型。在现代制造业领域,Inventor是设计流程不可或缺的一环,尤其对于需要精确模拟和分析的复杂零件和装配体。Autodesk Inventor不仅支持标准的CAD绘图和3D建模,还具备有限元分析(FEA)、运动仿真以及管道和电缆布线等高级功能。通过这些功能,设计师可以在真实环境下测试产品的性能和耐久性,从而在实际生产前优化设计。
2025-06-03 15:50:32
554
原创 CQM1H PLC操作与维护手册(中文版)
简介:《CQM1H可编程序控制器操作手册》详细介绍了如何操作和维护三菱电机推出的CQM1H型号可编程序控制器(PLC),确保工业自动化领域设备的稳定运行。手册涵盖PLC结构、功能、编程环境、硬件安装、系统配置、故障处理、维护以及安全规范。它提供了梯形图、指令表、结构文本等编程语言的指导,并包含了丰富的实例和应用案例,帮助用户实现高效的自动化控制。
2025-06-03 15:49:38
636
原创 CheckStyle在Eclipse中的安装与使用教程
CheckStyle是一个强大的代码质量检查工具,它帮助开发者确保代码风格符合预定义的编码规范,从而提高代码的可读性和维护性。它是Java开发者必用的工具之一,因为它不仅帮助遵守编程规范,还能够在代码合并或审查阶段节省大量的时间和精力。从基础的命名规则、代码格式化到复杂的模块结构,CheckStyle都可以通过其灵活的配置进行各种层面的代码质量检查。这篇文章将带你从基础到深入,逐步掌握CheckStyle的使用和配置,让你的代码质量管理更加高效。
2025-06-03 15:32:03
590
原创 Linux TCP/IP协议栈源码深度解析与应用
socket API是一种网络编程接口,它允许程序通过网络发送和接收数据。在操作系统层面,socket API为应用提供了与网络协议栈交互的方式,隐藏了底层网络通信的复杂性。socket接口是基于 BSD Unix 的套接字(socket)抽象的,它定义了一套用于进程间网络通信的编程接口。在 TCP/IP 协议栈中,socket API 层位于应用层,是最接近用户程序的网络编程接口。通过创建和使用socket,用户可以方便地进行网络数据的发送和接收。
2025-06-03 14:38:15
843
原创 构建高效网上书店管理系统:设计与实现
简介:本论文详细讨论了构建一个高效和用户友好的网上书店管理系统的过程。内容包括需求分析、系统架构设计、数据库设计、功能模块实现、前后端技术选择、安全性与性能优化以及测试与优化。系统旨在提升在线图书销售的效率和服务质量,涵盖用户注册登录、图书管理、购物车、订单处理、支付集成及评论等关键功能。同时,提出了使用现代前端技术如React和后端框架如Spring Boot,以及强调了安全性和性能优化的重要性。论文还包括了用户体验优化和答辩PPT的内容概述,为Web应用开发提供了一个全面的学习案例。
2025-06-03 13:20:27
917
原创 3D Max 2009快捷键秘籍:三维设计高效操作指南
3D Max 2009是一款由Autodesk公司开发的三维建模、动画和渲染软件,它是3D设计行业中的一个重要工具。该软件广泛应用于游戏开发、电影特效、建筑可视化和工业设计等多个领域。2009版本在软件性能和用户界面方面都做了改进,提供了更加流畅和直观的操作体验。在3D Max中,建模过程通常需要频繁切换视图和调整对象。以下是一些在建模中十分重要的快捷键:F5:用于切换顶点、边、多边形视图。F6:切换到侧视图。F7:切换到前视图。F8:切换到顶视图。
2025-06-03 11:58:53
936
原创 深入解析DDR内存:从DDR1到DDR3的区别与特点
DDR内存技术从DDR1开始,经历了DDR2和DDR3的发展,其变化不仅仅体现在命名上,更是在技术性能和应用领域上带来了深远的影响。本章将带领读者从内存的基础技术原理出发,深入理解DDR技术的演变和它在现代计算中的关键角色。CAS延迟(Column Address Strobe Latency)是内存操作中的一个重要参数,它代表从内存接收到读取命令到实际开始读取数据所需等待的时钟周期数。在RAM芯片中,CAS延迟通常用时钟周期数来表示,比如CL=3表示内存的CAS延迟为3个时钟周期。
2025-06-03 11:17:50
691
原创 数字电子技术基础第五版:全面掌握数字电路与逻辑设计
简介:《数字电子技术基础第五版》由阎石教授主编,系统介绍了数字电子技术的关键概念和实践知识,适用于电子信息和计算机科学专业的学生。本书内容包括数字逻辑基础、组合逻辑电路、时序逻辑电路、存储器与可编程逻辑器件、数模与模数转换器等核心主题。通过深入讲解二进制运算、布尔代数、门电路功能、时序电路设计、存储器概念以及数模与模数转换器应用,本书帮助学生建立坚实的数字电子理论基础,并通过课后习题与学习指导,强化实际问题解决能力。
2025-06-03 10:39:19
848
原创 掌握MIME类型大全,提升网页制作技能
MIME(多用途互联网邮件扩展)类型是一种标准,用于在互联网上传递不同类型的文件。每一种MIME类型都由一个主类型和一个子类型组成,中间用斜杠(/)分隔。MIME类型用于告诉客户端应该如何处理接收到的数据,无论是打开还是下载文件。在Web开发中,MIME类型尤其重要。当用户访问一个网页时,服务器通过HTTP响应发送MIME类型信息,浏览器依据这些信息来决定如何处理接收到的数据。比如,如果MIME类型是text/html,浏览器会将其作为HTML文件解析并显示内容;如果是,则会提示用户下载。
2025-06-03 10:08:15
841
谷歌工作区使用指南
2025-04-23
PHP 5大规模网站开发指南
2025-04-11
青少年父母共同育儿指南
2025-02-26
创新教师主导管理团队的远程护理教育
2025-02-24
开发预测不对称反应立体结果的计算工具
2025-02-14
C#快速参考指南
2025-02-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人