作者:在寻找雪见的景天
博客:https://www.jianshu.com/p/6b4028f9e764
前言
由于我英语很烂,写代码的时候需要用英文命名,有些单词不知道,就只能切换到浏览器打开网页搜索,再拿到英文单词。这样每次都要切换出去,很麻烦,于是,就想着开发一个Android studio插件,在里面就能完成翻译工作。上网搜了搜Android studio插件开发教程,记录一下。
效果图
如图所示,功能很简单:
1、点击Android studio 项目面板上的Tools里面的“翻译插件”
2、在弹出的对话框,填上需要翻译的内容,点击ok
3、就会弹出翻译结果弹框,复制翻译结果就好啦。
开始动手吧
1、下载工具
首先安装IntelliJ IDEA
下载网址:https://www.jetbrains.com/idea/
2、创建项目
安装完成后,新建一个项目,如下图:
点击next创建成功后,就会显示下面这个文件,里面是会报错的,要你修改了,才会显示正常,按照下面这样配置就行,类似 AndroidManifest 清单文件。
id:相当于安卓的包名
name:会显示在Android studio插件列表
version:版本号
vendor:用户信息
description:插件描述信息,这里要求字数的,所以写多点,不然会一直报错。
3、新建Action
先在src目录,创建一个包,然后选择包,右键新建一个Action,如下图:
Action ID:代表该Action的唯一id
Class Name:Action名字,类名啦
Name:这个会显示在菜单项那个标题
Description:描述
Groups:里面选择ToolsMenu(Tools),意思就是在Tools那个菜单栏。
Anchor:右边那个,选择First,就是在菜单栏的第一个位置
Keyboard Shortcuts:设置快捷键,根据你需要的设置,不要和别人重复就好
4、完善逻辑功能
新建完,就开始写代码啦,代码很简单,直接在上面注释了,看代码吧:
public class Translate extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
//弹出一个输入框,并获取输入框的内容
String text = Messages.showInputDialog("请输入要翻译的内容",
"提示", Messages.getQuestionIcon());
if (text != null) {
//网络请求,这个接口是百度翻译的,直接用
HttpUtils.doGetAsyn("https://fanyi.baidu.com/transapi?from=auto&to=auto&query="
+ text, new HttpUtils.CallBack() {
public void onRequestComplete(String result) {
//请求成功后,用gson解析数据出来。
DataModel dataModel = new Gson().fromJson(result, DataModel.class);
//这个回调是线程里面的,所以要加个方法,不然会报错
ApplicationManager.getApplication().invokeLater(new Runnable() {
@Override
public void run() {
//弹出翻译结果对话框
if (dataModel.getData().size() > 0) {
Messages.showInputDialog(text + "===>", "翻译结果",
Messages.getInformationIcon(),
dataModel.getData().get(0).getDst(), null);
}
}
});
}
});
}
}
}
那整个功能就完成啦,HttpUtils 类,是网上搜的。DataModel 类,是翻译的请求结果,用gson解析的。
整个工程就这样:
5、编译运行
完成了,就点击右上角这个运行符号,这个时候,他会重新打开一个IDEA界面,随便新建一个项目,这个时候,Tools那里就会“翻译插件”了。
运行没问题后,就是打包了,然后给Android studio那边使用
点击上面图的选项,会在项目目录生成一个 jar文件
7、在Android studio 安装插件
打开设置,点击 Install plugin from disk ,然后选择刚刚打包出来的那个jar。确定后,重启Android studio 就可以啦。
如果想把这个插件发布给其他人用,参考下面这个地址:
http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html
看完这篇文章,有没有想法做其他插件呢?有想法就干吧,逻辑想清楚,其他的就搜索去实现。
附上这个翻译插件,你们可以下载安装到Android studio 使用。
地址:http://bmob-cdn-15734.b0.upaiyun.com/2018/11/26/df3a63f9403821368090400110a1717c.jar
近期文章:
今日问题:
大家的英文水平如何呢?
打卡格式:
打卡 X 天,答:xxx 。