- 浏览: 120510 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
-
瘾心丶Android:
[color=red][/colo[size=large][/ ...
android捕获Home键的方法 -
j086924:
good share!
android Launcher——ui框架 -
m331006:
a、进入cocos2d-x\testandroid\andro ...
Android cocos2d-x开发(三)之创建Android工程和编译 -
sphway:
为什么在布局文件中加入android:layout_gravi ...
自定义控件---滑动按钮的实现 -
chenshijun0101:
LZ,你能把长按home键显示当前任务实现此功能的源码发给我一 ...
长按home键显示当前任务
package cn.flyaudio.android; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; public class SlipButton extends View implements OnTouchListener { private String TAG = "SlipButton"; private boolean onSlip = false;//记录用户是否在滑动的变量 private float downX, nowX, oldX;//按下时的x,当前的x private Bitmap slip_btn_down, slip_btn_thumb, slip_btn_up, slip_btn_bg;//图片 private Rect slip_thumb_rect;//矩形 public SlipButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub init(context, attrs); } public SlipButton(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub init(context, attrs); } //初始化 private void init(Context context, AttributeSet attrs) { // 跟values/attrs.xml里面定义的属性绑定 TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SlipButton); slip_btn_down = drawableToBitmap(a.getDrawable(R.styleable.SlipButton_slip_btn_down)); //按下图片 slip_btn_thumb = drawableToBitmap(a.getDrawable(R.styleable.SlipButton_slip_btn_thumb));//滑动图片 slip_btn_up = drawableToBitmap(a.getDrawable(R.styleable.SlipButton_slip_btn_up)); //为按下的图片 //返回一个绑定结束的信号给资源 a.recycle(); slip_btn_bg = slip_btn_up; slip_thumb_rect = new Rect(0, 0, slip_btn_bg.getWidth(), slip_btn_bg.getHeight()); setOnTouchListener(this);// 设置监听器 } //绘制部分 @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); Paint paint = new Paint(); canvas.drawBitmap(slip_btn_bg, 0, 0, paint); if(!onSlip){//在没有滑动的情况下 if(nowX <= slip_btn_bg.getWidth()/2){ canvas.save();//记录原来的canvas状态 canvas.clipRect(slip_thumb_rect); canvas.drawBitmap(slip_btn_thumb,slip_btn_bg.getWidth()-slip_btn_thumb.getWidth(),0,paint); canvas.restore();//恢复canvas状态 }else if(nowX > slip_btn_bg.getWidth()/2){ canvas.save();//记录原来的canvas状态 canvas.clipRect(slip_thumb_rect); canvas.drawBitmap(slip_btn_thumb,0, 0,paint); canvas.restore();//恢复canvas状态 } }else if(onSlip){//在滑动的情况下 canvas.save();//记录原来的canvas状态 canvas.clipRect(slip_thumb_rect); if(nowX < oldX){//向左滑的时候 if((nowX-oldX) > slip_btn_bg.getWidth()-slip_btn_thumb.getWidth()){ canvas.drawBitmap(slip_btn_thumb,nowX-oldX, 0,paint); }else{ canvas.drawBitmap(slip_btn_thumb,slip_btn_bg.getWidth()-slip_btn_thumb.getWidth(), 0,paint); } }else if(nowX > oldX ){//向右滑的时候 if((slip_btn_bg.getWidth()-slip_btn_thumb.getWidth()) +(nowX - oldX) <0){ canvas.drawBitmap(slip_btn_thumb,(slip_btn_bg.getWidth()-slip_btn_thumb.getWidth()) +(nowX - oldX), 0,paint); }else{ canvas.drawBitmap(slip_btn_thumb,0, 0,paint); } } canvas.restore();//恢复canvas状态 } } //逻辑控制部分 @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub switch(event.getAction())//根据动作来执行代码 { case MotionEvent.ACTION_MOVE://滑动 if(event.getX()>slip_btn_bg.getWidth()||event.getY()>slip_btn_bg.getHeight() || event.getX()<0 || event.getY()<0) return false; slip_btn_bg = slip_btn_down; nowX = event.getX(); //得到的是触摸点相对于按钮的坐标 onSlip = true; break; case MotionEvent.ACTION_DOWN://按下 if(event.getX()>slip_btn_bg.getWidth()||event.getY()>slip_btn_bg.getHeight() || event.getX()<0 || event.getY()<0) return false; slip_btn_bg = slip_btn_down; downX = event.getX(); nowX = downX; oldX = downX; break; case MotionEvent.ACTION_UP://松开 slip_btn_bg = slip_btn_up; onSlip = false; break; default: } invalidate();//重画控件 return true; } //将drawable转换为bitmap public static Bitmap drawableToBitmap(Drawable drawable) { // 取 drawable 的长宽 int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); // 取 drawable 的颜色格式 Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; // 建立对应 bitmap Bitmap bitmap = Bitmap.createBitmap(w, h, config); // 建立对应 bitmap 的画布 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); // 把 drawable 内容画到画布中 drawable.draw(canvas); return bitmap; } }
今天在公司写了一个自定义控件,主要是一个可以实现左右滑动的自定义按钮。
里面的涉及到的一些知识点主要有:
1、自定义控件的属性的设置;
2、自定义控件怎么继承View这个父类来写控件;
首先是自定义控件属性的设置:
- 先在values文件夹下写一个xml文件,文件名为:attrs.xml
-
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="SlipButton"><!-- 控件名称--> <!-- 属性名称,类型--> <attr name="slip_btn_down" format="reference"/> <attr name="slip_btn_thumb" format="reference"/> <attr name="slip_btn_up" format="reference"/> </declare-styleable> </resources>
-
控件属性与XML定义绑定: // 跟values/attrs.xml里面定义的属性绑定 TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.SlipButton); slip_btn_down = drawableToBitmap(a.getDrawable(R.styleable.SlipButton_slip_btn_down)); //按下图片 slip_btn_thumb = drawableToBitmap(a.getDrawable(R.styleable.SlipButton_slip_btn_thumb));//滑动图片 slip_btn_up = drawableToBitmap(a.getDrawable(R.styleable.SlipButton_slip_btn_up)); //为按下的图片 //返回一个绑定结束的信号给资源 a.recycle();
-
//将drawable转换为bitmap public static Bitmap drawableToBitmap(Drawable drawable) { // 取 drawable 的长宽 int w = drawable.getIntrinsicWidth(); int h = drawable.getIntrinsicHeight(); // 取 drawable 的颜色格式 Bitmap.Config config = drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565; // 建立对应 bitmap Bitmap bitmap = Bitmap.createBitmap(w, h, config); // 建立对应 bitmap 的画布 Canvas canvas = new Canvas(bitmap); drawable.setBounds(0, 0, w, h); // 把 drawable 内容画到画布中 drawable.draw(canvas); return bitmap;
TypedArray其实就是一个存放资源的Array,首先从上下文中获取到
-
R.styleable.SlipButton这个属性资源的资源数组。 attrs是构造函数传进来,应该就是对应attrs.xml文件。 a.getString(R.styleable.SlipButton_slip_btn_thumb);这句代码就是获取attrs.xml中定义的属性,并将这个属 性的值传给本控件的slip_btn_thumb.最后,返回一个绑定结束的信号给资源:a.recycle();绑定结束。 在xml中对控件赋初始值: <?xml version="1.0" encoding="utf-8"?> <!-- 一定要声明命名空间 --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:flyaudio="http://schemas.android.com/apk/res/cn.flyaudio.android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <cn.flyaudio.android.SlipButton android:id = "@+id/slipBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft = "100sp" flyaudio:slip_btn_thumb="@drawable/slip_btn_thumb" flyaudio:slip_btn_down="@drawable/slip_btn_down" flyaudio:slip_btn_up="@drawable/slip_btn_up" /> </LinearLayout> 红色部分首先声明命名空间。命名空间为fsms.路径是http://schemas.android.com/apk/res/ 这一部分是不变的, 后面接的是R的路径:cn.flyaudio.android。 然后在自定义控件的xml描述中就可以这样使用flyaudio:slip_btn_thumb="@drawable/slip_btn_thumb" 。这样就实现了自定义控件的初始化赋值。
- SlipButtonTest.zip (88.6 KB)
- 下载次数: 107
评论
1 楼
sphway
2012-12-10
为什么在布局文件中加入android:layout_gravity="center_horizontal"不起作用,难道只能用layout_marginLeft把位置写死吗?
发表评论
-
Android Service学习之AIDL, Parcelable和远程服务
2012-06-26 19:33 764AIDL的作用 由于每 ... -
Android的系统的Binder机制(一)
2012-06-21 19:11 706Android系统的Binder机制之一—— ... -
Android的系统的Binder机制(一)
2012-06-21 19:11 798Android系统的Binder机制之一—— ... -
android中修改framework层代码后怎样操作才能看到修改后的效果?
2012-03-30 10:24 41241.下面方法适合真机:下载android源码,然后编译你修改的 ... -
Ubuntu下常用的快捷键
2012-03-19 09:10 0最常用 win+n切换背景颜色风格 alt+tab=不用说了 ... -
Android中全屏无标题设置
2012-03-06 10:29 2396方法一:在java代码中实现 //取消标题 ... -
如何通过wifi调试android程序
2012-03-06 09:53 3377android手机居然可以通过wifi进行程序的调试,太好 ... -
长按home键显示当前任务
2012-03-05 10:33 6391公司给我的任务就是怎么长按home键显示当前任务,刚开始我还以 ... -
android捕获Home键的方法
2012-03-05 10:08 2420Level5以上(包含)中,Activity类中有如下方法: ... -
在32位Ubuntu10.04上编译Android2.3
2012-02-18 11:23 01.安装JDK6 对于Android2.3系统,不要安 ... -
滑动按钮
2012-02-10 19:09 768http://blog.csdn.net/luoyuhhy/a ... -
Android 支持多屏幕机制
2012-02-10 09:20 695在Android上进行开发, ... -
Android UI开发专题
2012-02-06 09:36 956Android UI开发专题 (一) ... -
Launcher(一)关于使用Eclipse调试Launcher的完美解决方法
2012-02-02 19:21 1291由于在Android源码中,很多方法、成员、类、包都被打上@h ... -
android Launcher——ui框架
2012-01-31 22:25 1165android Launcher——ui框架 分 ... -
为程序员量身定制的12个目标
2012-01-15 15:01 670ugmbbc发布于 2012-01-15 ... -
Ubuntu Linux中连接Android真机调试
2012-01-14 14:50 1225首先确保用数据线链接后能识别设备,输入:lsusb,可以看 ... -
如何成为一名Android开发高手
2012-01-04 16:42 1909下面是成为一名真正的Android高手必须掌握和遵循的一些准则 ... -
android GestureDetector功能和使用
2011-12-26 15:36 885android为了增加用户体验 ... -
Android 系统自带样式Android:theme
2011-12-26 15:23 853•android:theme="@android: ...
相关推荐
常用1.SchLib
# 【tokenizers-***.jar***文档.zip】 中包含: ***文档:【tokenizers-***-javadoc-API文档-中文(简体)版.zip】 jar包下载地址:【tokenizers-***.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【tokenizers-***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【tokenizers-***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【tokenizers-***-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: tokenizers-***.jar***文档.zip,java,tokenizers-***.jar,ai.djl.huggingface,tokenizers,***,ai.djl.engine.rust,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,djl,huggingface,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【tokenizers-***.jar***文档.zip】,再解压其中的 【tokenizers-***-javadoc-API文档-中文(简体)版.zip】,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件; # Maven依赖: ``` <dependency> <groupId>ai.djl.huggingface</groupId> <artifactId>tokenizers</artifactId> <version>***</version> </dependency> ``` # Gradle依赖: ``` Gradle: implementation group: 'ai.djl.huggingface', name: 'tokenizers', version: '***' Gradle (Short): implementation 'ai.djl.huggingface:tokenizers:***' Gradle (Kotlin): implementation("ai.djl.huggingface:tokenizers:***") ``` # 含有的 Java package(包): ``` ai.djl.engine.rust ai.djl.engine.rust.zoo ai.djl.huggingface.tokenizers ai.djl.huggingface.tokenizers.jni ai.djl.huggingface.translator ai.djl.huggingface.zoo ``` # 含有的 Java class(类): ``` ai.djl.engine.rust.RsEngine ai.djl.engine.rust.RsEngineProvider ai.djl.engine.rust.RsModel ai.djl.engine.rust.RsNDArray ai.djl.engine.rust.RsNDArrayEx ai.djl.engine.rust.RsNDArrayIndexer ai.djl.engine.rust.RsNDManager ai.djl.engine.rust.RsSymbolBlock ai.djl.engine.rust.RustLibrary ai.djl.engine.rust.zoo.RsModelZoo ai.djl.engine.rust.zoo.RsZooProvider ai.djl.huggingface.tokenizers.Encoding ai.djl.huggingface.tokenizers.HuggingFaceTokenizer ai.djl.huggingface.tokenizers.HuggingFaceTokenizer.Builder ai.djl.hu
内容概要:本文详细探讨了电力系统中PMU(相量测量单元)的优化配置问题,旨在确保系统完全可观测的同时尽量减少PMU的数量。作者介绍了六种不同的算法,包括模拟退火、图论方法、递归安全N算法等,并通过MATLAB实现了这些算法。通过对IEEE标准测试系统的实验,展示了各种算法在不同规模系统中的表现。文中不仅提供了具体的MATLAB代码实现,还分享了许多实用的经验技巧,如邻域解生成、退火速率设置、拓扑排序等。 适合人群:从事电力系统研究的技术人员、研究生以及对组合优化感兴趣的科研工作者。 使用场景及目标:适用于电力系统状态估计、故障诊断等领域,帮助研究人员和工程师找到最优的PMU配置方案,提高系统的可靠性和经济性。 其他说明:文章强调了在实际应用中需要注意的问题,如变压器支路的影响、节点编号不连续等问题,并推荐了几篇相关领域的经典文献供进一步学习。此外,还提到了一些有趣的发现,如某些中间节点装PMU反而能减少总数。
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了三菱FX1s PLC与台达MS300变频器通过Modbus RTU协议实现通讯的方法。首先,文中列举了所需的硬件设备及其连接方法,确保PLC与变频器能够正常通信。接下来,针对频率设定、频率读取及正反转启停控制三大主要功能进行了详细的编程讲解,提供了具体的梯形图代码示例并解释了每一步的作用。此外,还涉及到了触摸屏(MCGS和威纶通)的配置步骤,使用户可以通过触摸屏方便地操作变频器的各项功能。最后,作者分享了一些实用的小技巧和常见错误避免方法,帮助使用者快速解决问题,提高工作效率。 适合人群:从事自动化控制系统集成的技术人员,尤其是那些需要将三菱PLC与台达变频器进行互联的工程师。 使用场景及目标:适用于工业自动化领域的项目实施过程中,旨在帮助技术人员掌握三菱FX1s与台达MS300变频器之间的高效通信技术,从而更好地完成系统集成任务。 其他说明:文中不仅包含了详细的理论知识和技术要点,还有丰富的实践经验分享,有助于读者全面理解和应用相关技术。同时,提供的完整工程文件可以直接应用于实际项目中,极大地节省了开发时间和成本。
winrar免费版压缩工具
内容概要:本文详细介绍了灰狼算法(GWO)、鲸鱼算法(WOA)和人工蜂群算法(ABC)在CEC21标准测试函数集上的性能对比。通过设定相同的实验条件(种群数量50,迭代次数500次,30维问题空间),分别探讨了各算法的关键参数调整及其对不同类型函数(单峰、多峰、复合)的影响。文中提供了每个算法的核心代码片段,并针对具体函数给出了优化建议。最终结果显示,GWO在单峰函数上有优势,WOA擅长处理旋转和平移问题,而ABC在高维复杂环境中表现出色。 适合人群:从事优化算法研究的科研人员、研究生以及对智能优化算法感兴趣的开发者。 使用场景及目标:适用于需要评估和比较不同优化算法性能的研究项目,特别是那些涉及高维、多峰、旋转平移等问题的实际应用场景。目标是帮助研究人员选择最适合特定任务的优化算法,并提供参数调优的经验。 其他说明:文章不仅提供了理论分析,还分享了许多实践经验,如参数调整技巧、初始化方法等。此外,所有实验均基于Matlab平台完成,附带完整的代码实现,方便读者复现实验结果。
电控开关.SchLib
# 【spring-ai-autoconfigure-model-openai-1.0.0-M7.jar中文-英文对照文档.zip】 中包含: 中文-英文对照文档:【spring-ai-autoconfigure-model-openai-1.0.0-M7-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【spring-ai-autoconfigure-model-openai-1.0.0-M7.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-autoconfigure-model-openai-1.0.0-M7.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-autoconfigure-model-openai-1.0.0-M7.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-autoconfigure-model-openai-1.0.0-M7-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-autoconfigure-model-openai-1.0.0-M7.jar中文-英文对照文档.zip,java,spring-ai-autoconfigure-model-openai-1.0.0-M7.jar,org.springframework.ai,spring-ai-autoconfigure-model-openai,1.0.0-M7,org.springframework.ai.model.openai.autoconfigure,jar包,Maven,第三方jar包,组件,开源组件,第三方
c++复习题.doc
本科毕业设计(论文)中期检查报告
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
weixin248食堂订餐小程序ssm(文档+源码)_kaic
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
e1e90185ca2f1eda312e7f604d38195c_b4125f83523abcb38acd9dc0deebd500
# 【spring-ai-autoconfigure-mcp-client-1.0.0-M7.jar中文-英文对照文档.zip】 中包含: 中文-英文对照文档:【spring-ai-autoconfigure-mcp-client-1.0.0-M7-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【spring-ai-autoconfigure-mcp-client-1.0.0-M7.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-autoconfigure-mcp-client-1.0.0-M7.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-autoconfigure-mcp-client-1.0.0-M7.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-autoconfigure-mcp-client-1.0.0-M7-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-autoconfigure-mcp-client-1.0.0-M7.jar中文-英文对照文档.zip,java,spring-ai-autoconfigure-mcp-client-1.0.0-M7.jar,org.springframework.ai,spring-ai-autoconfigure-mcp-client,1.0.0-M7,org.springframework.ai.mcp.client.autoconfigure,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,springfram
该项目使用 OpenCV 实现图像中红色目标的识别与轮廓框选,适用于图像处理、颜色追踪与形状检测等场景。项目无需深度学习框架,适合图像识别技术入门学习。附带测试图像与运行说明,支持一键运行。
爱威6-8电脑调音软件是专为音响爱好者和专业人士设计的一款强大工具,喜欢的话,直接下载吧
# 【spring-ai-vertex-ai-0.8.0.jar中文-英文对照文档.zip】 中包含: 中文-英文对照文档:【spring-ai-vertex-ai-0.8.0-javadoc-API文档-中文(简体)-英语-对照版.zip】 jar包下载地址:【spring-ai-vertex-ai-0.8.0.jar下载地址(官方地址+国内镜像地址).txt】 Maven依赖:【spring-ai-vertex-ai-0.8.0.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【spring-ai-vertex-ai-0.8.0.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【spring-ai-vertex-ai-0.8.0-sources.jar下载地址(官方地址+国内镜像地址).txt】 # 本文件关键字: spring-ai-vertex-ai-0.8.0.jar中文-英文对照文档.zip,java,spring-ai-vertex-ai-0.8.0.jar,org.springframework.ai,spring-ai-vertex-ai,0.8.0,org.springframework.ai.vertex,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,springframework,spring,ai,vertex,中文-英文对照API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压 【spring-ai-vertex-ai-0.8.0.jar中文-英文对照文档.zip】,再解压其中的 【spring-ai-vertex-ai-0.8.0-javadoc-API文档-中文(简体)-英语-对照版.zip】,双
电源.SCHLIB