HarmonyOS学习第7天: 文本组件点亮界面的文字魔法棒
一、引言
在 HarmonyOS 那丰富多彩的系统界面中,从简洁直观的应用图标,到交互流畅的操作菜单,再到生动形象的图文展示,每一处细节都经过精心雕琢,为用户带来了独特而美妙的视觉与交互体验。而在这琳琅满目的界面元素中,文本组件(Text)无疑扮演着不可或缺的关键角色。它是信息传递的直接载体,无论是应用的标题、操作的提示,还是内容的描述,都离不开文本组件的呈现。
你是否曾好奇,那些在 HarmonyOS 界面上风格各异、排版精美的文字是如何实现的?又是否想知道如何让文本随着用户的操作而动态变化,实现更加丰富的交互效果?接下来,就让我们一同深入探索 HarmonyOS 文本组件的奥秘,解锁文字在界面上生动呈现的密码。
二、Text 组件初相识
在 HarmonyOS 的 UI 开发体系中,Text 组件就像是搭建界面大厦的基石,是用于展示文本的基础组件。它的存在使得应用能够将各种信息,以文字的形式清晰、准确地呈现给用户。无论是简单的提示语、复杂的文章内容,还是应用的标题、按钮上的文字,都离不开 Text 组件的支持。
在一个音乐播放应用中,歌曲的名称、歌手信息、歌词展示等,都可以通过 Text 组件来实现。又比如在一款购物应用里,商品的名称、价格、促销信息等文本内容,同样依赖 Text 组件来展示 。可以说,Text 组件贯穿于 HarmonyOS 应用界面的方方面面,是构建用户与应用之间信息交互桥梁的重要元素。
三、属性大揭秘
(一)字体相关属性
字体选择:在 HarmonyOS 中设置字体,主要通过text_font属性来实现。默认情况下,系统会使用默认字体来展示文本。但如果我们想要使用特定的字体,比如HwChinese-medium 、sans-serif-medium等系统自带字体 ,只需在布局文件中进行如下设置:
<Text ohos:id="$+id:text_view" ohos:text="这是一段使用特定字体的文本" ohos:text_font="HwChinese-medium" ... /> |
要是系统自带字体无法满足需求,还能添加自定义字体。步骤如下:首先准备好自定义的字体文件,通常为.ttf(TrueType Font)或.otf(OpenType Font)格式 。接着将字体文件放置在resources/rawfile目录下,如果没有该目录则需手动创建。然后在代码中通过编程方式设置字体,例如在 Java 代码中:
Text textComponent = (Text) findComponentById(ResourceTable.Id_text_view); Typeface customFont = Typeface.createFromAsset(getContext().getAssets(), "rawfile/your_font.ttf"); textComponent.setTypeface(customFont); |
字体大小:通过text_size属性可以轻松设置字体大小,该属性支持多种取值方式。如果传递的是数字类型,默认单位为 px(像素) 。比如设置字体大小为 16px,可以这样写:
<Text ohos:id="$+id:text_view" ohos:text="字体大小为16px" ohos:text_size="16" ... /> |
也能显式指定单位,如 vp(视口单位)、fp(字体像素)等。使用 vp 单位时,它会根据设备的屏幕密度自动调整大小,保证在不同设备上元素的显示效果一致。例如设置字体大小为 20vp:
<Text ohos:id="$+id:text_view" ohos:text="字体大小为20vp" ohos:text_size="20vp" ... /> |
而 fp 是鸿蒙系统专门用于定义字体大小的单位,能在不同的屏幕密度和分辨率下自动调整字体大小,确保字体在所有设备上都清晰可读。如设置字体大小为 18fp:
<Text ohos:id="$+id:text_view" ohos:text="字体大小为18fp" ohos:text_size="18fp" ... /> |
字体风格:设置字体风格主要通过font_style属性,取值有normal(正常)和italic(斜体) 。默认值为normal,显示正常字体风格。若要设置为斜体,代码如下:
<Text ohos:id="$+id:text_view" ohos:text="这是斜体风格的文本" ohos:font_style="italic" ... /> |
字体粗细:通过font_weight属性来设置字体粗细,取值范围较为丰富,包括normal(正常)、bold(粗体)、bolder(更粗)、lighter(更细) ,以及数字 100 - 900,数字越大字体越粗。例如设置为粗体:
<Text ohos:id="$+id:text_view" ohos:text="这是粗体文本" ohos:font_weight="bold" ... /> |
要是想设置为更细的字体风格,则可以这样设置:
<Text ohos:id="$+id:text_view" ohos:text="这是更细的文本" ohos:font_weight="lighter" ... /> |
(二)颜色属性
文本颜色:设置文本颜色使用text_color属性,它支持多种颜色表示方式。最常见的是使用十六进制颜色值,比如设置文本颜色为红色:
<Text ohos:id="$+id:text_view" ohos:text="红色文本" ohos:text_color="#FF0000" ... /> |
也能引用color资源文件中的颜色,首先在resources/base/color目录下的color.json文件中定义颜色:
{ "color": [ { "name": "my_red", "value": "#FF0000" } ] } |
然后在布局文件中引用:
<Text ohos:id="$+id:text_view" ohos:text="从资源文件引用的红色文本" ohos:text_color="$color:my_red" ... /> |
此外,还支持使用 RGB 值、RGBA 值(包含透明度) 等方式来表示颜色。例如使用 RGB 值设置文本颜色为绿色:
<Text ohos:id="$+id:text_view" ohos:text="绿色文本" ohos:text_color="rgb(0, 255, 0)" ... /> |
背景颜色:设置文本组件的背景颜色,需要借助background_element属性,并结合ShapeElement来实现 。首先在resources/base/graphic目录下创建一个xml文件,例如bg_rectangle.xml,定义背景形状和颜色:
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <solid ohos:color="#EFEFEF" /> </shape> |
然后在布局文件中应用这个背景:
<Text ohos:id="$+id:text_view" ohos:text="带有灰色背景的文本" ohos:background_element="$graphic:bg_rectangle" ... /> |
(三)对齐方式属性
通过text_alignment属性可以设置文本的对齐方式,包括水平和垂直方向 。在水平方向上,取值有left(左对齐)、right(右对齐)、horizontal_center(水平居中对齐)、start(起始端对齐,与left类似,在从左到右排版时表现相同)、end(结尾端对齐,与right类似,在从左到右排版时表现相同) 。例如设置文本右对齐:
<Text ohos:id="$+id:text_view" ohos:text="右对齐文本" ohos:text_alignment="right" ... /> |
在垂直方向上,取值有top(顶部对齐)、bottom(底部对齐)、vertical_center(垂直居中对齐) 。例如设置文本垂直居中对齐:
<Text ohos:id="$+id:text_view" ohos:text="垂直居中对齐文本" ohos:text_alignment="vertical_center" ... /> |
还可以将水平和垂直方向的对齐方式组合使用,比如设置文本既水平居中又垂直居中:
<Text ohos:id="$+id:text_view" ohos:text="居中对齐文本" ohos:text_alignment="center" ... /> |
或者设置文本顶部左对齐:
<Text ohos:id="$+id:text_view" ohos:text="顶部左对齐文本" ohos:text_alignment="top left" ... /> |
(四)其他实用属性
文本截断:当文本内容过长,超出文本组件的显示范围时,可通过truncation_mode属性来处理。取值有none(无截断,默认值,文本超长时全部显示,可能导致文本溢出组件范围)、ellipsis_at_start(在文本框起始处使用省略号截断)、ellipsis_at_middle(在文本框中间位置使用省略号截断)、ellipsis_at_end(在文本框结尾处使用省略号截断)、auto_scrolling(文本超长时滚动显示全部文本) 。在一个新闻应用中展示新闻标题时,如果标题过长,为了保证界面的整洁美观,通常会在结尾处使用省略号截断,设置如下:
<Text ohos:id="$+id:text_view" ohos:text="这是一个非常非常非常非常长的新闻标题,用于展示文本截断效果" ohos:truncation_mode="ellipsis_at_end" ... /> |
自动换行:设置自动换行通过multiple_lines属性,将其值设置为true即可开启自动换行 。同时,还可以结合max_text_lines属性来限制文本显示的最大行数。在一个小说阅读应用中,展示小说内容时,希望文本自动换行,并且最多显示 3 行,设置如下:
<Text ohos:id="$+id:text_view" ohos:text="这是一段小说内容,可能会很长,需要自动换行并且限制行数。这是一段小说内容,可能会很长,需要自动换行并且限制行数。这是一段小说内容,可能会很长,需要自动换行并且限制行数。" ohos:multiple_lines="true" ohos:max_text_lines="3" ... /> |
文本装饰:通过decoration属性可以给文本添加装饰线,如删除线、下划线等。该属性包含type(装饰线类型)和color(装饰线颜色,可选)两个参数 。在一个电商应用中,展示商品原价时,为了突出折扣,给原价添加删除线,并设置删除线颜色为红色,设置如下:
<Text ohos:id="$+id:text_view" ohos:text="原价100元" ohos:decoration="{type: TextDecorationType.LineThrough, color: Color.Red}" ... /> |
要是只想添加下划线,不设置颜色(默认颜色),则可以这样设置:
<Text ohos:id="$+id:text_view" ohos:text="这是带有下划线的文本" ohos:decoration="{type: TextDecorationType.Underline}" ... /> |
四、动态更新与交互效果实
(一)动态更新文本
数据绑定:在 HarmonyOS 中,数据绑定是实现文本动态更新的重要机制之一。它基于 MVVM(Model - View - ViewModel)架构模式,通过建立数据与视图之间的双向绑定关系,使得当数据发生变化时,与之绑定的视图也能自动更新 。在一个天气应用中,需要实时显示当前的气温数据。首先定义一个数据模型类,例如WeatherModel:
public class WeatherModel { private String temperature; public WeatherModel(String temperature) { this.temperature = temperature; } public String getTemperature() { return temperature; } public void setTemperature(String temperature) { this.temperature = temperature; } } |
然后在布局文件中创建一个 Text 组件,并使用数据绑定语法将其与数据模型中的temperature属性绑定:
<Text ohos:id="$+id/temperature_text" ohos:text="{{viewModel.temperature}}" ... /> |
在代码中,通过DataBindingUtil将布局与数据模型进行绑定,并在需要更新数据时,直接修改数据模型中的属性值,视图会自动更新。例如:
public class MainAbilitySlice extends AbilitySlice { private WeatherModel viewModel; @Override public void onStart(Intent intent) { super.onStart(intent); // 初始化数据模型 viewModel = new WeatherModel("25℃"); // 获取布局的绑定对象 DataAbilityHelper helper = DataAbilityHelper.creator(this); AbilitySliceDataBinding binding = DataBindingUtil.inflate(helper, ResourceTable.Layout_ability_main, null, false); binding.setViewModel(viewModel); setUIContent(binding.getRoot()); // 模拟数据更新 new Handler().postDelayed(() -> { viewModel.setTemperature("26℃"); }, 3000); } } |
代码更新:在代码中通过方法调用动态改变文本内容也是一种常见的方式。当用户在一个登录界面中输入用户名和密码后,点击登录按钮,系统会根据登录结果在界面上显示相应的提示信息。在布局文件中定义一个 Text 组件用于显示提示信息:
<Text ohos:id="$+id/login_result_text" ohos:text="请输入用户名和密码" ... /> |
在代码中,通过获取 Text 组件的实例,调用setText方法来更新文本内容。例如:
public class LoginAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); setUIContent(ResourceTable.Layout_ability_login); Button loginButton = (Button) findComponentById(ResourceTable.Id_login_button); Text resultText = (Text) findComponentById(ResourceTable.Id_login_result_text); loginButton.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { // 模拟登录验证逻辑 boolean isLoginSuccess = performLogin(); if (isLoginSuccess) { resultText.setText("登录成功"); } else { resultText.setText("用户名或密码错误,请重试"); } } }); } private boolean performLogin() { // 实际的登录验证逻辑,这里简单返回一个固定值 return true; } } |
(二)交互效果实现
点击事件:为文本组件添加点击事件监听器,能够让文本在被点击时执行特定的操作。在一个新闻详情页面中,有一段文本是关于新闻来源的链接,当用户点击该文本时,希望能够跳转到新闻来源的网站。在布局文件中定义一个 Text 组件:
<Text ohos:id="$+id/news_source_text" ohos:text="来源:[具体新闻网站名称]" ... /> |
在代码中,获取 Text 组件的实例,并为其设置点击事件监听器。例如:
public class NewsDetailAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); setUIContent(ResourceTable.Layout_ability_news_detail); Text sourceText = (Text) findComponentById(ResourceTable.Id_news_source_text); sourceText.setClickedListener(new Component.ClickedListener() { @Override public void onClick(Component component) { // 处理点击事件,跳转到新闻来源网站 Intent intent = new Intent(); Operation operation = new Intent.OperationBuilder() .withUri("https://[具体新闻网站地址]") .build(); intent.setOperation(operation); startAbility(intent); } }); } } |
长按事件:实现文本组件的长按事件,可以满足一些特定的交互需求,比如弹出上下文菜单、复制文本等。在一个便签应用中,长按便签的文本内容,希望能够弹出一个包含 “复制”“删除” 等操作的菜单。在布局文件中定义一个 Text 组件用于显示便签内容:
<Text ohos:id="$+id/note_text" ohos:text="这是一条便签内容" ... /> |
在代码中,获取 Text 组件的实例,并为其设置长按事件监听器。例如:
public class NoteAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); setUIContent(ResourceTable.Layout_ability_note); Text noteText = (Text) findComponentById(ResourceTable.Id_note_text); noteText.setLongClickedListener(new Component.LongClickedListener() { @Override public boolean onLongClicked(Component component) { // 处理长按事件,弹出上下文菜单 showContextMenu(); return true; } }); } private void showContextMenu() { // 实际的上下文菜单显示逻辑,这里可以使用PopupMenu等组件实现 ToastDialog toast = new ToastDialog(getContext()); toast.setText("上下文菜单"); toast.show(); } } |
触摸反馈:为文本组件添加触摸反馈效果,可以让用户在操作时获得更直观的视觉反馈,提升交互体验。在 HarmonyOS 中,可以通过设置文本组件的background_element属性,结合ShapeElement来实现触摸反馈效果。在一个按钮式的文本组件中,当用户触摸时,希望文本背景颜色变深,松开时恢复原状。首先在resources/base/graphic目录下创建一个xml文件,例如button_bg.xml,定义触摸前后的背景形状和颜色:
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle"> <solid ohos:color="#FFFFFF" /> <corners ohos:radius="4vp" /> <states> <state ohos:state_pressed="true"> <solid ohos:color="#E0E0E0" /> </state> </states> </shape> |
然后在布局文件中应用这个背景到文本组件:
<Text ohos:id="$+id/button_text" ohos:text="点击我" ohos:background_element="$graphic:button_bg" ... /> |
这样,当用户触摸该文本组件时,背景颜色会变为#E0E0E0,松开时恢复为#FFFFFF,从而实现了触摸反馈效果。
五、应用案例展示
为了让大家更直观地了解 HarmonyOS 文本组件的强大功能和实际应用效果,下面我们来看几个具体的应用案例。
(一)资讯类应用
在一款知名的资讯类应用中,文本组件的运用十分巧妙。新闻标题使用了较大字号、加粗字体以及与背景形成鲜明对比的颜色,如黑色文本搭配白色背景,在列表中非常醒目,能迅速吸引用户的注意力 。同时,通过text_alignment属性设置为left,保证标题左对齐,符合用户从左到右的阅读习惯。新闻摘要则采用较小字号和相对柔和的颜色,与标题形成层次区分 。对于较长的摘要内容,应用了truncation_mode属性设置为ellipsis_at_end,在显示区域有限时,以省略号截断,既展示了关键信息,又保持了界面的整洁。当用户点击新闻标题进入详情页后,正文内容根据不同的段落结构,设置了适当的行间距和缩进,通过multiple_lines属性开启自动换行,确保文本排版舒适,易于阅读。
(二)金融类应用
在一款金融理财应用里,对于数字金额的显示,文本组件的属性设置尤为重要。账户余额、收益金额等关键数字,使用了较大且醒目的字体,如HwChinese-bold字体 ,并根据金额的正负,设置了不同的颜色,盈利金额显示为绿色,亏损金额显示为红色,让用户一眼就能了解自己的财务状况 。在交易记录列表中,每笔交易的时间、金额、交易类型等信息,通过合理设置文本的对齐方式和颜色,实现了清晰的信息展示。交易时间左对齐,金额右对齐,交易类型居中显示,不同类型的交易(如买入、卖出、转账等)使用不同的颜色标识,方便用户快速区分和查看。此外,对于一些重要的提示信息,如风险提示、账户安全提醒等,采用了带背景颜色的文本框展示,背景颜色通常为浅黄色或淡红色,与普通文本形成明显区别,引起用户的重视。
(三)教育类应用
在一款在线教育应用中,文本组件在课程内容展示、互动环节等方面发挥了重要作用。课程标题和章节标题使用了较大的字体和不同的颜色来区分层级,如课程标题用蓝色,章节标题用绿色 ,方便学生快速定位和了解课程结构。在知识点讲解部分,对于重点内容,通过设置font_weight为bold加粗显示,或添加下划线装饰,让学生能够快速抓住关键知识点 。在互动环节,如提问、讨论区,用户输入的文本和回复的内容,通过不同的背景颜色和文本对齐方式进行区分,用户自己输入的文本背景色为淡灰色,左对齐显示;回复的内容背景色为白色,右对齐显示,使得交流内容清晰明了,提升了用户的互动体验。同时,在输入框中,还利用hint属性设置了提示文本,引导用户正确输入内容 。
六、总结与展望
HarmonyOS 的文本组件(Text)凭借丰富多样的属性,为开发者打造出了一个充满创意与可能的文本展示空间。从字体的精挑细选,到颜色的巧妙搭配,再到对齐方式的精心布局,以及各种实用属性的灵活运用,每一个细节都为文本在界面上的生动呈现提供了有力支持 。
在动态更新与交互效果方面,数据绑定和代码更新两种方式让文本能够实时响应数据变化,点击事件、长按事件和触摸反馈等交互效果的实现,则极大地增强了用户与应用之间的互动性,为用户带来了更加流畅、有趣的使用体验 。
随着 HarmonyOS 的不断发展和生态的日益完善,相信文本组件在未来的应用开发中会发挥更加重要的作用。其功能将不断优化和拓展,以适应更多复杂的应用场景和用户需求 。例如,在未来的智能穿戴设备应用中,可能会根据用户的运动状态、心率等生理数据,动态调整文本的显示方式,如在运动时增大字体、改变颜色以提高可视性;在智能家居控制应用中,文本组件可能会与语音交互更加紧密结合,当用户通过语音下达指令时,界面上的文本提示能够及时更新,给予用户准确的反馈 。
HarmonyOS 文本组件作为界面开发的重要基础,为我们打开了一扇通往无限可能的大门,让我们期待它在未来绽放出更加绚丽的光彩,为 HarmonyOS 应用的精彩呈现持续贡献力量。
相关文章:
HarmonyOS学习第7天: 文本组件点亮界面的文字魔法棒
一、引言 在 HarmonyOS 那丰富多彩的系统界面中,从简洁直观的应用图标,到交互流畅的操作菜单,再到生动形象的图文展示,每一处细节都经过精心雕琢,为用户带来了独特而美妙的视觉与交互体验。而在这琳琅满目的界面元素中…...
06C语言——指针
一、指针入门 (1)、准备知识 0、图解: 1、内存地址 字节:字节是内存的容量单位,英文称为 byte,一个字节有8位,即 1byte(0000 0000 --- 1111 1111) 8bits(0 --- 1) 地址:系统为了便于区分每一个字节而对…...
Ubuntu DeepSeek磁盘空间不够解决办法
标签: Ubuntu; DeepSeek磁盘空间不够解决办法;Ubuntu 22, DeepSeek R1 671 B, solution for Insufficient Disk Space 问题:Ubuntu 22, DeepSeek R1 671B 磁盘空间不够解决办法 Ubuntu 22.04操作系统,台式…...
东信营销科技巨额补贴仍由盈转亏:毛利率大幅下滑,现金流告急
《港湾商业观察》施子夫 近期,东信营销科技有限公司(以下简称,东信营销科技)递表港交所,联席保荐机构为海通国际和中银国际。 东信营销科技的国内运营主体为深圳市东信时代信息技术有限公司。尽管期内收入规模有所提…...
Qt layout
文章目录 Qt layout**关键机制****验证示例****常见误区****最佳实践****总结**关键点总结:示例代码说明:结论: Qt layout 在 Qt 中,当调用 widget->setLayout(layout) 时,layout 的父对象会被自动设置为该 widget…...
本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面
文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask,以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架,采用Python编程…...
基于YOLO11深度学习的苹果叶片病害检测识别系统【python源码+Pyqt5界面+数据集+训练代码】
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
Android MMKV集成指南
首先简单介绍一下MMKV当下Android Studio最版本及Gradle8.7 MMKV集成根据官方文档重新对mmkv重新包了一次(便于开发)总结首先简单介绍一下MMKV MMKV 是腾讯开源的一款专为移动端设计的高性能键值存储组件,旨在替代传统的 SharedPreferences 和 SQLite,尤其在频繁读写和数据…...
React七Formik
Formik是一个专为React构建的开源表单库。它提供了一个易于使用的API来处理表单状态管理,表单验证以及表单提交。Formik支持React中的所有表单元素和事件,可以很好地与React生态系统中的其他库集成。同时,Formik还提供了一些高级功能…...
5分钟使用Docker部署Paint Board快速打造专属在线画板应用
文章目录 前言1.关于Paint Board2.本地部署paint-board3.使用Paint Board4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Paint Board公网地址 💡 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住…...
可狱可囚的爬虫系列课程 14:10 秒钟编写一个 requests 爬虫
一、前言 当重复性的工作频繁发生时,各种奇奇怪怪提高效率的想法就开始萌芽了。当重复代码的模块化封装已经不能满足要求的时候,更高效的方式就被揭开了神秘的面纱。本文基于这样的想法,来和大家探讨如何 10 秒钟编写一个 requests 爬虫程序。…...
【深度学习神经网络学习笔记(三)】向量化编程
向量化编程 向量化编程前言1、向量化编程2、向量化优势3、正向传播和反向传播 向量化编程 前言 向量化编程是一种利用专门的指令集或并行算法来提高数据处理效率的技术,尤其在科学计算、数据分析和机器学习领域中非常常见。它允许通过一次操作处理整个数组或矩阵的…...
PHP入门基础学习四(PHP基本语法)
运算符 运算符,专门用于告诉程序执行特定运算或逻辑操作的符号。根据运算符的作用,可以将PHP语言中常见的运算符分为9类 算数运算符: 是用来处理加减乘除运算的符号 也是最简单和最常用的运算符号 赋值运算符 1. 是一个二元运算符&#x…...
【十二】Golang 映射
💢欢迎来到张胤尘的开源技术站 💥开源如江河,汇聚众志成。代码似星辰,照亮行征程。开源精神长,传承永不忘。携手共前行,未来更辉煌💥 文章目录 映射映射的定义映射初始化make 函数使用字面量 源…...
简单理解Oracle中的latch
可以用一个小卖部抢购的例子来理解 Oracle 数据库中的 Latch: 1、 什么是 Latch? 打个比方,假设数据库的某个内存区域(比如缓存的数据块)是小卖部货架上的最后一包辣条,Latch 就像是货架前的一个狭窄通道&a…...
hbase集群部署
1.hbase集群的搭建(以及内部逻辑) 虽然Hmaster有多个,但是属于热备,起作用的就active上的这个。 部署流程: 因为我配置的hadoop是一个非HA的,所以修改为以下 如果是HA的hadoop一定要做以下这一步。 在启动…...
塔能物联运维保障智慧地下停车场安全与高效
一、智慧地下停车场安全在城市升级改造中的关键地位 随着城市的不断发展和升级改造,智慧地下停车场的重要性日益凸显。在现代城市中,土地资源愈发珍贵,地下停车场成为解决停车难题的关键设施。然而,停车场的安全问题是其正常运行和…...
面试八股文--数据库基础知识总结(2) MySQL
本文介绍关于MySQL的相关面试知识 一、关系型数据库 1、定义 关系型数据库(Relational Database)是一种基于关系模型的数据库管理系统(DBMS),它将数据存储在表格(表)中,并通过表格…...
深入理解指针2
深入理解指针2 数组名的理解 数组名就是首元素的地址 int arr[]{1,3,2}; printf("%p\n",arr); printf("%p\n",&arr[0]);但是有两种情况除外, 1.sizeof(数组名),sizeof操作符统计的是整个数组的大小,并不是第一个元素…...
QT各种版本下载安装
参考链接: 【Qt】超详细!Qt4.8.6和VS2010的配置及使用 由于QT官网一般现在进不去,所以下载一些QT版本只能通过镜像或者以前下载存储的安装包来进行,现在推荐两种方法 从参考链接中搬过来: 方案一:国内镜…...
java进阶学习脑图
今天开始分享我的第一篇博客,先放上我自己花费一个月完成的java进阶学习脑图吧! 谁都想像R大一样对JVM可以知无不言,言无不尽; 谁都想像Doug Lea一样可以参与JUC这种核心模块的开发; 但是,不能只停留在想…...
Spring 原始注解详解与实战指南
📝 1. 前言 在 Spring 框架的发展过程中,注解的引入大大简化了配置,提升了开发效率 本文将详细介绍 Spring 最初引入的核心注解,包括 Component、Controller、Service、Repository、Autowired、Qualifier 和 Value 等,…...
uniapp封装请求
在uniapp中封装HTTP请求,通常我们会使用uni.request方法。uni.request是uni-app提供的一个网络请求API,可以用来发送各种类型的HTTP请求(GET、POST、PUT、DELETE等)。下面是如何在uniapp中封装一个通用的HTTP请求方法,…...
YOLOv10 解析与地平线 征程 6 模型量化
一,YOLOv10 解析 1.简介 近些年来,研究人员对 YOLO 的架构设计、优化目标、数据增强策略等进行了探索,取得了显著进展。然而,后处理对非极大值抑制(NMS)的依赖阻碍了 YOLO 的端到端部署,并对推…...
基本网络安全的实现
基本网络安全的实现 一 :AAA AAA 是Authentication,Authorization and Accounting(认证、授权和计费)的简 称,它提供了一个用来对认证、授权和计费这三种安全功能进行配置的一致性框架, 它是对网络安全…...
ROS2 强化学习:案例与代码实战
一、引言 在机器人技术不断发展的今天,强化学习(RL)作为一种强大的机器学习范式,为机器人的智能决策和自主控制提供了新的途径。ROS2(Robot Operating System 2)作为新一代机器人操作系统,具有…...
Java数据结构第十四期:走进二叉树的奇妙世界(三)
专栏:数据结构(Java版) 个人主页:手握风云 目录 一、二叉树OJ练习题 1.1. 相同的树 1.2. 另一棵树的子树 1.3. 翻转二叉树 1.4. 平衡二叉树 1.5. 对称二叉树 一、二叉树OJ练习题 1.1. 相同的树 判断两棵树是否相同,我们是否只能遍历一…...
GO 进行编译时插桩,实现零码注入
Go 编译时插桩 Go 语言的编译时插桩是一种在编译阶段自动注入监控代码的技术,目的是在不修改业务代码的情况下,实现对应用程序的监控和追踪。 基本原理 Go 编译时插桩的核心思想是通过在编译过程中对源代码进行分析和修改,将监控代码注入到…...
《炎龙骑士团 1 邪神之封印》游戏信息
发行公司:1994 年由汉堂国际资讯公司发行。 游戏类型:回合制角色扮演游戏 故事背景 远古之战:在远古时代,圣族与魔族爆发大战,魔族领导者大邪神力量强大,圣族处于下风。圣族派出十二战士突袭,虽…...
本地大模型编程实战(23)用智能体(Agent)实现基于SQL数据构建问答系统(2)
本文将用 智能体(Agent) 实现对 SQLite 数据库的查询:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。 本次将分别在英文、中文环境下,使用 qwen2.5 、 MFDoom/deepseek-r1-tool-calling:7b 以及 llama3.1 做实验。…...
Flash-03
1-问题:Flash软件画两个图形,若有部分重合则变为一个整体 解决方法1:两个图形分属于不同的图层 解决方法2:将每个图形都转化为【元件】 问题2:元件是什么? 在 Adobe Flash(现在称为 Adobe Anim…...
防火墙双机热备---VRRP,VGMP,HRP(超详细)
双机热备技术-----VRRP,VGMP,HRP三个组成 注:与路由器VRRP有所不同,路由器是通过控制开销值控制数据包流通方向 防火墙双机热备: 1.主备备份模式 双机热备最大的特点就是防火墙提供了一条专门的备份通道(心…...
PC端-发票真伪查验系统-Node.js全国发票查询接口
在现代企业的财务管理中,发票真伪的验证至关重要。随着电子发票的普及,假发票问题日益严峻,如何高效、准确的对发票进行真伪查验,已经成为各类企业在日常运营中必须解决的关键问题。翔云发票查验接口做企业财务管理、税务合规的好…...
3.1部署filebeat:5044
beats是ELK体系中新增的一个工具,, 属于一个轻量的日志采集器。 1.安装(每台) # tar xf filebeat-6.4.1-linux-x86_64.tar.gz # mv filebeat-6.4.1-linux-x86_64 /usr/local/filebeat #yum -y install httpd #systemctl start httpd 2.测试…...
在 Windows 上配置 Ollama 服务并开放局域网访问
为了在局域网内共享 Ollama 服务,我们需要完成以下两步: 1、设置 Ollama 的环境变量 OLLAMA_HOST,使其监听局域网的 IP 地址。 (1) 配置 Ollama 服务的监听地址 Ollama 服务使用环境变量 OLLAMA_HOST 来指定监听的地…...
C#快速调用DeepSeek接口,winform接入DeepSeek查询资料 C#零门槛接入DeepSeek C#接入DeepSeek源代码下载
下载地址<------完整源码 在数字化转型加速的背景下,企业应用系统对智能服务的需求日益增长。DeepSeek作为先进的人工智能服务平台,其自然语言处理、图像识别等核心能力可显著提升业务系统的智能化水平。传统开发模式下,C#开发者需要耗费大…...
解决后端跨域问题
目录 一、什么是跨域问题? 1、跨域问题的定义 2、举例 3、为什么会有跨域问题的存在? 二、解决跨域问题 1、新建配置类 2、编写代码 三、结语 一、什么是跨域问题? 1、跨域问题的定义 跨域问题(Cross-Origin Resource Sh…...
【教程】使用docker+Dify搭建一个本地知识库
现在AI火的一塌糊涂,再不搭建一个自己的AI知识库就有点落伍了,这里我是自己的windows11电脑。用了dockerdifydeepseek。 一、安装docker 网址:https://www.docker.com/ 什么是docker? Docker 是一种开放源代码的容器化平台&…...
微信小程序数据绑定与事件处理:打造动态交互体验
在上一篇中,我们学习了如何搭建微信小程序的开发环境并创建了一个简单的“Hello World”页面。然而,一个真正的小程序不仅仅是静态内容的展示,它需要与用户进行动态交互。本文将深入探讨微信小程序中的数据绑定和事件处理机制,通过…...
Spring MVC 的执行流程解析:从用户请求到响应返回
Spring MVC 是一种基于 Model-View-Controller 设计模式的 Web 框架,用于处理用户请求、执行相应的业务逻辑并返回响应。它广泛应用于 Java Web 开发,提供了灵活的架构和丰富的功能。 本文将详细介绍 Spring MVC 的执行流程,帮助你理解它是如…...
c++day5
作业: 编写一个如下场景: 有一个英雄Hero类,私有成员,攻击,防御,速度,生命值,以及所有的set get 方法 编写一个 武器 Weapon 类,拥有私有成员攻击力,以及set …...
Deepseek 实战全攻略,领航科技应用的深度探索之旅
想玩转 Deepseek?这攻略别错过!先带你了解它的基本原理,教你搭建运行环境。接着给出自然语言处理、智能客服等应用场景的实操方法与代码。还分享模型微调、优化技巧,结合案例加深理解,让你全面掌握,探索科技…...
公共数据授权运营模式研究(总体框架、主要模式及发展趋势)
本报告以公共数据运营模式为核心,以释放公共数据价值为目标,深入分析公共数据概念及特征,厘清公共数据运营的内涵及本质,提出纵深分域数据要素市场运营体系的总体思路,构建了一座(一个数据底座)…...
本地开发用ASP.NET Core Web API项目创建及测试
1. 服务端代码(C#) 1.1 创建ASP.NET Core Web API项目 打开Visual Studio 2022。 选择“创建新项目”。 选择“ASP.NET Core Web API”模板,点击“下一步”。 输入项目名称(如OracleApi),选择项目位置&…...
【虚拟仪器技术】labview操作指南和虚拟仪器技术习题答案(一)
今天是2025年2月24日,画的是fate/Grand Order里面的阿尔托莉雅.卡斯特,武内老师的画。 目录 第1章 第2章 第3章 第4章 第5章 关注作者了解更多 我的其他CSDN专栏 毕业设计 求职面试 大学英语 过程控制系统 工程测试技术 虚拟仪器技术 可编程…...
SpringCloud系列教程:微服务的未来(二十五)-基于注解的声明队列交换机、消息转换器、业务改造
前言 在现代分布式系统中,消息队列是实现服务解耦和异步处理的关键组件。Spring框架提供了强大的支持,使得与消息队列(如RabbitMQ、Kafka等)的集成变得更加便捷和灵活。本文将深入探讨如何利用Spring的注解驱动方式来配置和管理队…...
LLM之论文阅读——Context Size对RAG的影响
前言 RAG 系统已经在多个行业中得到广泛应用,尤其是在企业内部文档查询等场景中。尽管 RAG 系统的应用日益广泛,关于其最佳配置的研究却相对缺乏,特别是在上下文大小、基础 LLM 选择以及检索方法等方面。 论文原文: On the Influence of Co…...
C#实现本地AI聊天功能(Deepseek R1及其他模型)。
前言 1、C#实现本地AI聊天功能 WPFOllamaSharpe实现本地聊天功能,可以选择使用Deepseek 及其他模型。 2、此程序默认你已经安装好了Ollama。 在运行前需要线安装好Ollama,如何安装请自行搜索 Ollama下载地址: https://ollama.org.cn Ollama模型下载地址…...
git 查询包含某个文件夹的步骤
步骤 1:拉取最新的远程分支信息 确保本地缓存的远程分支信息是最新的: bash 复制 git fetch --all 步骤 2:遍历所有远程分支并检查目标文件夹 使用 git ls-tree 检查每个分支是否包含目标文件夹。以下脚本会列出所有包含 your_folder_pa…...
微软开源神器OmniParser-v2.0本地部署教程
安装python环境 我这里是以前安装好的版本:python 3.11.5,这里不再介绍,有需要的可以在网上找教程。 安装Anaconda 我这里是以前安装好的版本:conda 23.7.4,这里也不再介绍,有需要的可以在网上找教程。 …...