Android——基本控件(下)(十九)

1. 菜单:Menu

1.1 知识点

(1)掌握Android中菜单的使用;

(2)掌握选项菜单(OptionsMenu)的使用;

(3)掌握上下文菜单(ContextMenu)的使用;

(4)掌握子菜单(SubMenu)的使用;

1.2 具体内容

 

 

package com.example.menuproject;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;public class MenuActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_menu);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {menu.add(Menu.NONE,//菜单不分组Menu.FIRST+1,//菜单项的id1,//菜单的编号"添加")//菜单标题.setIcon(//设置菜单图标R.drawable.add);menu.add(Menu.NONE,Menu.FIRST+2,2,"保存").setIcon(R.drawable.save);menu.add(Menu.NONE,Menu.FIRST+3,3,"编辑").setIcon(R.drawable.edit);menu.add(Menu.NONE,Menu.FIRST+4,4,"详细").setIcon(R.drawable.detail);menu.add(Menu.NONE,Menu.FIRST+5,5,"删除").setIcon(R.drawable.delete);menu.add(Menu.NONE,Menu.FIRST+6,6,"更多").setIcon(R.drawable.more);return true;}}

 只需要在onCreateOptionsMenu(Menu menu)去进行菜单的设置就行

@Overridepublic boolean onPrepareOptionsMenu(Menu menu){Toast.makeText(this, "菜单显示前操作", 0).show();return true;}

以上是在菜单显示之前执行的一个方法,可以从父类当中去覆写以便实现一些逻辑

@Overridepublic void onOptionsMenuClosed(Menu menu){Toast.makeText(this, "选项关闭", 0).show();}

以上实在菜单关闭之后执行的一个方法。

@Overridepublic boolean onOptionsItemSelected(MenuItem item){switch (item.getItemId()){case Menu.FIRST+1:Toast.makeText(this, "这是添加菜单项", 0).show();break;case Menu.FIRST+2:Toast.makeText(this, "这是保存菜单项", 0).show();break;case Menu.FIRST+3:Toast.makeText(this, "这是编辑菜单项", 0).show();break;case Menu.FIRST+4:Toast.makeText(this, "这是详情菜单项", 0).show();break;case Menu.FIRST+5:Toast.makeText(this, "这是删除菜单项", 0).show();break;case Menu.FIRST+6:Toast.makeText(this, "这是更多菜单项", 0).show();break;}return false;}

以上都是在Activity当中去添加菜单选项。

当然也可以在xml文件中添加菜单选项。

<menu xmlns:android="http://schemas.android.com/apk/res/android" ><itemandroid:id="@+id/m1"android:orderInCategory="100"android:title="添加"/><itemandroid:id="@+id/m2"android:orderInCategory="101"android:title="保存"/><itemandroid:id="@+id/m3"android:orderInCategory="102"android:title="编辑"/><itemandroid:id="@+id/m4"android:orderInCategory="103"android:title="详情"/><itemandroid:id="@+id/m5"android:orderInCategory="104"android:title="删除"/><itemandroid:id="@+id/m6"android:orderInCategory="105"android:title="更多"/></menu>

此处需要注意的是,加载的xml文件不是layout文件而是menu文件

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {super.getMenuInflater().inflate(R.menu.menu, menu);return true;}

上下文菜单

package com.example.menuproject;import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;public class MenuActivity extends Activity {String data[] ={"中国高校培训","培训课程","万策智业"};ListView listView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.listView = new ListView(this);listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,this.data));super.registerForContextMenu(listView);//注册上下文菜单super.setContentView(listView);}@Overridepublic void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuInfo) {super.onCreateContextMenu(menu, v, menuInfo);menu.setHeaderTitle("信息操作");menu.add(Menu.NONE,Menu.FIRST+1,1,"添加联系人");menu.add(Menu.NONE,Menu.FIRST+2,2,"查看详情");menu.add(Menu.NONE,Menu.FIRST+3,3,"删除信息");menu.add(Menu.NONE,Menu.FIRST+4,4,"编辑");}}

 以上是实现上下文菜单组件

@Overridepublic boolean onContextItemSelected(MenuItem item){switch (item.getItemId()){case Menu.FIRST+1:Toast.makeText(this, "添加联系人", 0).show();break;case Menu.FIRST+2:Toast.makeText(this, "查看详情", 0).show();break;case Menu.FIRST+3:Toast.makeText(this, "删除信息", 0).show();break;case Menu.FIRST+4:Toast.makeText(this, "编辑", 0).show();break;}return false;}

子菜单:SubMenu

@Overridepublic boolean onCreateOptionsMenu(Menu menu){SubMenu fileMenu = menu.addSubMenu("文件");SubMenu editMenu = menu.addSubMenu("编辑");fileMenu.add(Menu.NONE,Menu.FIRST+1,1,"新建");fileMenu.add(Menu.NONE,Menu.FIRST+2,2,"打开");editMenu.add(Menu.NONE,Menu.FIRST+3,3,"保存");editMenu.add(Menu.NONE,Menu.FIRST+4,4,"撤销");return true;}

 子菜单的监听

@Overridepublic boolean onOptionsItemSelected(MenuItem item){switch (item.getItemId()){case Menu.FIRST+1:Toast.makeText(this, "新建子菜单", 0).show();break;case Menu.FIRST+2:Toast.makeText(this, "打开子菜单", 0).show();break;case Menu.FIRST+3:Toast.makeText(this, "保存子菜单", 0).show();break;case Menu.FIRST+4:Toast.makeText(this, "撤销子菜单", 0).show();break;}return false;}

1.3 小结

(1)界面开发之中使用菜单可以有效的对工具集进行管理;

(2)Android中一共分为三种菜单:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)和子菜单(SubMenu)。

2. 隐式抽屉组件:SlidingDrawer

2.1 知识点

(1)掌握SlidingDrawer 的主要作用及实现;

(2)掌握SlidingDrawer 组件的事件处理方式;

2.2 具体内容

 

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".SlidingDrawerActivity" ><SlidingDrawer android:id="@+id/sd"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"android:handle="@+id/img"android:content="@+id/content"><ImageView android:id="@+id/img"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/pic_8"/><LinearLayoutandroid:id="@+id/content"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"></LinearLayout> </SlidingDrawer></LinearLayout>

定义一个内嵌LInearLayout,以便能够在后台动态添加程序集

package com.example.slidingdrawer;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SlidingDrawer;
import android.widget.SlidingDrawer.OnDrawerCloseListener;
import android.widget.SlidingDrawer.OnDrawerOpenListener;
import android.widget.SlidingDrawer.OnDrawerScrollListener;
import android.widget.Toast;public class SlidingDrawerActivity extends Activity {String data[]={"兰州","定西","武威","张掖"};ListView listView = null;SlidingDrawer sd = null;ImageView img = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_sliding_drawer);LinearLayout content = (LinearLayout) super.findViewById(R.id.content);listView = new ListView(this);listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1,data));content.addView(this.listView);sd = (SlidingDrawer) super.findViewById(R.id.sd);img = (ImageView) super.findViewById(R.id.img);sd.setOnDrawerOpenListener(new OnDrawerOpenListenerImpl());sd.setOnDrawerCloseListener(new OnDrawerCloseListenerImpl());sd.setOnDrawerScrollListener(new OnDrawerScrollListenerImpl());}private class OnDrawerOpenListenerImpl implements OnDrawerOpenListener{@Overridepublic void onDrawerOpened() {img.setImageResource(R.drawable.pic_6);}}private class OnDrawerCloseListenerImpl implements OnDrawerCloseListener{@Overridepublic void onDrawerClosed() {img.setImageResource(R.drawable.pic_8);}}private class OnDrawerScrollListenerImpl implements OnDrawerScrollListener{@Overridepublic void onScrollEnded() {Toast.makeText(SlidingDrawerActivity.this, "窗口拖动结束", 0).show();}@Overridepublic void onScrollStarted() {// TODO Auto-generated method stubToast.makeText(SlidingDrawerActivity.this, "窗口拖动开始", 0).show();}}
}

2.3 小结

(1)使用SlidingDrawer 组件可以更好的管理按钮操作集。

3. 缩放控制:ZoomControls

3.1 知识点

(1)掌握ZoomControls组件的使用;

3.2 具体内容

实现利用缩放组件进行对字体大小缩放。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".ZoomControlsActivity" ><TextViewandroid:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="ZoomControls控件控制文字缩放" android:textSize="10dp"/><ZoomControls android:id="@+id/zoomcontrols"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="bottom"/></LinearLayout>

 

package com.example.zoomcontrols;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.ZoomControls;public class ZoomControlsActivity extends Activity {int size =10;TextView tv = null;ZoomControls zc =null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_zoom_controls);zc = (ZoomControls) super.findViewById(R.id.zoomcontrols);tv = (TextView) super.findViewById(R.id.tv);zc.setOnZoomInClickListener(new OnZoomInCLickListenerImpl());zc.setOnZoomOutClickListener(new OnZoomOutCLickListenerImpl());}//放大监听private class OnZoomInCLickListenerImpl implements OnClickListener{@Overridepublic void onClick(View v) {ZoomControlsActivity.this.size += 2;ZoomControlsActivity.this.tv.setTextSize(size);}}//缩小监听private class OnZoomOutCLickListenerImpl implements OnClickListener{@Overridepublic void onClick(View v) {ZoomControlsActivity.this.size -= 2;ZoomControlsActivity.this.tv.setTextSize(size);}}
}

3.3 小结

(1)ZoomControls组件可以由用户根据自己的需要控制显示的大小。

4. 弹出窗口:PopupWindow

4.1 知识点

(1)掌握弹出窗口的基本实现;

(2)掌握弹出窗口的事件处理操作;

4.2 具体内容

弹出窗口意味着在原有的手机上,增加一个专门的显示层,作为弹出窗口显示的空间。

 

既然PopupWindow组件是可以直接在界面上显示自己的一个界面层,那么就需要专门的一个布局管理器文件,来定PopupWindow组件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="请选择您所需要的状态" /><RadioGroup android:id="@+id/checkStatus"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><RadioButton android:id="@+id/onLine"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="在线"/><RadioButton android:id="@+id/offLine"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="离线"/><RadioButton android:id="@+id/steach"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="隐身"/></RadioGroup><Button android:id="@+id/cancel"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="取消"/>
</LinearLayout>

以上的布局管理器就是一个作为PopupWindow的显示。

现在我们来定义我们主布局管理器。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/statusInfo"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="用户当前状态:在线" /><Button android:id="@+id/popbut"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="选择状态"/></LinearLayout>

以上就是主布局管理器,现在还有一个问题,现在是通过按钮事件去弹出PopupWindow,那么肯定需要一个转换器将需要显示的布局管理器设置到PopupWindow上。这时需要使用LayoutInflater进行转换。现在我们来编写Activity程序。

package com.example.popupwindowproject;import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
public class PopupWindowActivity extends Activity {private  Button statuBut = null;private TextView statuInfo = null;private RadioGroup checkStatu = null;private Button cancelBut = null;private PopupWindow popWin = null;private View popView = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);super.setContentView(R.layout.activity_popup_window);this.statuBut = (Button) super.findViewById(R.id.popbut);this.statuInfo = (TextView) super.findViewById(R.id.statusInfo);this.statuBut.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {LayoutInflater inflater = LayoutInflater.from(PopupWindowActivity.this);PopupWindowActivity.this.popView = (View) inflater.inflate(R.layout.popup_window, null);//将布局文件转换成组件PopupWindowActivity.this.popWin = new PopupWindow(PopupWindowActivity.this.popView,300,220);//创建一个新的PopupWindowPopupWindowActivity.this.popWin.setContentView(PopupWindowActivity.this.popView);//设置显示组件PopupWindowActivity.this.checkStatu = (RadioGroup) PopupWindowActivity.this.popView.findViewById(R.id.checkStatus);PopupWindowActivity.this.cancelBut = (Button) PopupWindowActivity.this.popView.findViewById(R.id.cancel);PopupWindowActivity.this.checkStatu.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton rbut = (RadioButton) PopupWindowActivity.this.popView.findViewById(group.getCheckedRadioButtonId());//取得选中的组件IDPopupWindowActivity.this.statuInfo.setText("您选中的状态是:"+rbut.getText());//修改我们文本显示组件的内容}});PopupWindowActivity.this.cancelBut.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubPopupWindowActivity.this.popWin.dismiss();//隐藏PopupWindow}});PopupWindowActivity.this.popWin.showAtLocation(PopupWindowActivity.this.statuBut,Gravity.CENTER, 0, 0);//显示弹出窗口}});}
}

是要是组件就离不开布局文件,有个前提:就是组件中显示的内容会比较多。

4.3 小结

(1)弹出窗口需要一个单独的布局管理器进行配置;

(2)可以使用LayoutInflater通过配置文件读取组件信息;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/58421.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java doc等文件生成PDF、多个PDF合并

之前写过一遍文章是 图片生成PDF。 今天继续来对 doc等文件进行pdf合并以及多个pdf合并为一个pdf。 兄弟们&#xff0c;还是开箱即用。 1、doc生成pdf 依赖 <!-- doc生成pdf --><dependency><groupId>com.aspose</groupId><artifactId>aspose…

【会议征稿】2023智能通信与网络国际学术会议(ICN 2023)

2023智能通信与网络国际学术会议&#xff08;ICN 2023&#xff09; 2023 International Conference on Intelligent Communication and Networking (ICN2023) 2023智能通信与网络国际学术会议&#xff08;ICN 2023&#xff09;将于2023年11月10-12日在中国常州召开。ICN 2023…

Spring Boot 排除配置类的引用的方法

Spring Boot 提供的自动配置非常强大&#xff0c;某些情况下&#xff0c;自动配置的功能可能不符合我们的需求&#xff0c;需要我们自定义配置&#xff0c;这个时候就需要排除/禁用 Spring Boot 某些类的自动化配置了。 比如&#xff1a;数据源、邮件&#xff0c;这些都是提供…

设计模式——依赖倒转原则

文章目录 基本介绍应用实例依赖关系传递的三种方式和应用案例1, 接口传递&#xff0c;应用案例代码2, 构造方法传递&#xff0c;应用案例代码3, setter 方式传递&#xff0c;应用案例代码 依赖倒转原则的注意事项和细节 基本介绍 依赖倒转原则(Dependence Inversion Principle…

Vue3+TS+Vite中 vConsole 插件的使用

平时在web应用开发过程中&#xff0c;我们可以console.log去输出一些信息&#xff0c;但是在移动端&#xff0c;也就是在手机上&#xff0c;console.log的信息我们是看不到的&#xff0c;这时候就需要移动端调试工具vConsole 1. 依赖安装 npm install vconsole 或者 yarn ad…

扫雷小游戏

目录 一.扫雷小游戏 二.游戏主体一览 ​编辑 三.模块化设计扫雷游戏 3.1打印欢迎菜单 3.2创建两个二维数组 3.3棋盘稍加修改 3.4布置雷 3.5排查雷 四.游戏总体代码 4.1game.h头文件 4.2game.c函数实现源文件 4.3游戏main函数主体 五.游戏效果图 一.扫雷小游戏 这是…

Jmeter+ServerAgent

一、Jmeter 下载 https://jmeter.apache.org/download_jmeter.cgi选择Binaries二进制下载 apache-jmeter-5.6.2.tgz 修改配置文件 jmeter下的bin目录&#xff0c;打开jmeter.properties 文件 languagezh_CN启动命令 cd apache-jmeter-5.6/bin sh jmeter二、ServerAgent 监…

nginx 托管vue项目配置

server {listen 80;server_name your_domain.com;location / {root /path/to/your/vue/project;index index.html;try_files $uri $uri/ /index.html;} }奇怪的现象,在vue路由中/会跳转到/abc/def&#xff0c;但如果直接输入/abc/def会显示404&#xff0c;添加 try_files $uri…

实战 图书馆系统管理案例

config &#xff1a;敏感的配置一般都是在配置中心配置&#xff0c;比如consul或者阿波罗上面controller &#xff1a;写一些handler的&#xff0c;拿到参数要去调用service层的逻辑。&#xff08;只负责接受参数&#xff0c;怎么绑定参数&#xff0c;要去调用哪个service的&am…

Viobot输出数据说明

一.原始数据 1.ROS话题 1)相机原始图像数据 Type: sensor_msgs::Image Topic: 左目&#xff1a;/image_left 右目&#xff1a;/image_right 2&#xff09;imu数据 Type: sensor_msgs::Imu Topic: /imu 3&#xff09;TOF数据 点云数据&#xff1a; Type: sensor_msgs::P…

算法与数据结构(十)--图的入门

一.图的定义和分类 定义&#xff1a;图是由一组顶点和一组能够将两个顶点连接的边组成的。 特殊的图&#xff1a; 1.自环&#xff1a;即一条连接一个顶点和其自身的边; 2.平行边&#xff1a;连接同一对顶点的两条边&#xff1b; 图的分类&#xff1a; 按照连接两个顶点的边的…

带你速览主数据管理(MDM)的前世今生

主数据管理的历史可以追溯到很久以前&#xff0c;可以说主数据管理是生产生活的一部分。随着社会生产力和生产工具的不断发展&#xff0c;主数据和主数据管理在其中的作用不断提升&#xff0c;成为当今政府、企业和社会团队等组织管理中必不可少基础管理工作&#xff0c;同时也…

FrameBuffer 应用编程

目录 什么是FrameBufferLCD 的基础知识使用ioctl()获取屏幕参数信息使用mmap()将显示缓冲区映射到用户空间 LCD 应用编程练习之LCD 基本操作LCD 应用编程练习之显示BMP 图片BMP 图像介绍在LCD 上显示BMP 图像在开发板上测试 在LCD 上显示jpeg 图像在LCD 上显示png 图片LCD 横屏…

强化学习(2)

强化学习(1) 1.多智能体深度强化学习重要性采样 多智能体深度强化学习&#xff08;Multi-Agent Deep Reinforcement Learning&#xff0c;MADRL&#xff09;是指在多智能体环境下使用深度强化学习算法进行协同学习。重要性采样&#xff08;Importance Sampling&#xff09;是…

C语言_分支和循环语句(2)

文章目录 前言一、for 循环1.1语法1.2 for 语句的循环控制变量1.3 一些 for 循环的变种 二、do ... while()循环2.1 do 语句的语法2.2 do ... while 循环中的 break 和 continue2.3 练习1 **- 计算n的阶乘**2. - **在一个有序数组中查找具体的某个数字 n** 二分查找算法&#x…

68、使用aws官方的demo和配置aws服务,进行视频流上传播放

基本思想:参考官方视频,进行了配置aws,测试了视频推流,rtsp和mp4格式的视频貌似有问题,待调研和解决 第一步:1) 进入aws的网站,然后进入ioT Core 2)先配置 Thing types & Thing,选择香港的节点,然后AWS ioT--->Manage---> Thing type 然后输入名字,创建Th…

React钩子函数之forwardRef

React是一个非常流行的JavaScript库&#xff0c;用于构建用户界面。它提供了一种简单而强大的方式来管理组件的状态和行为。其中一个非常有用的功能是钩子函数&#xff0c;它们允许我们在组件的生命周期中执行代码。 在本文中&#xff0c;我们将探讨React的一个重要钩子函数—…

计算机视觉之图像特征提取

图像特征提取是计算机视觉中的重要任务&#xff0c;它有助于识别、分类、检测和跟踪对象。以下是一些常用的图像特征提取算法及其简介&#xff1a; 颜色直方图&#xff08;Color Histogram&#xff09;&#xff1a; 简介&#xff1a;颜色直方图表示图像中各种颜色的分布情况。通…

screen命令,可以断开服务器连接,依旧能运行你的程序了

可以参考博客1&#xff1a;https://blog.csdn.net/nima_zhang_b/article/details/82797928 可以参考博客2:https://blog.csdn.net/herocheney/article/details/130984403 Linux中的screen是一个命令行工具&#xff0c;可以让用户在同一个终端会话中创建多个虚拟终端。它非常有…

CMake调用第三方库的两种方法

为了让连接器搜索到库路径&#xff0c;一般有两种方法 link_directories命令 使用步骤## 在add_executable或add_library前引入第三方库 # 1.引入第三方库,${THIRD_PARTY_PREFIX}为用户定义的第三方库目录 link_directories(${THIRD_PARTY_PREFIX}/lib) # 2.增加第三方库头文…