手把手教你開發(fā)Android studio翻譯插件

前言

由于我英語很爛,寫代碼的時候需要用英文命名,有些單詞不知道,就只能切換到瀏覽器打開網(wǎng)頁搜索,再拿到英文單詞。這樣每次都要切換出去,很麻煩,于是,就想著開發(fā)一個Android studio插件,在里面就能完成翻譯工作。上網(wǎng)搜了搜Android studio插件開發(fā)教程,記錄一下。

效果圖

點(diǎn)擊Android studio工具面板

輸入要翻譯的內(nèi)容

就能得出翻譯結(jié)果

如圖所示,功能很簡單:
1、點(diǎn)擊Android studio 項目面板上的Tools里面的“翻譯插件”
2、在彈出的對話框,填上需要翻譯的內(nèi)容,點(diǎn)擊ok
3、就會彈出翻譯結(jié)果彈框,復(fù)制翻譯結(jié)果就好啦。

開始動手吧

1、下載工具

首先安裝IntelliJ IDEA
下載網(wǎng)址:https://www.jetbrains.com/idea/

2、創(chuàng)建項目

安裝完成后,新建一個項目,如下圖:



點(diǎn)擊next創(chuàng)建成功后,就會顯示下面這個文件,里面是會報錯的,要你修改了,才會顯示正常,按照下面這樣配置就行,類似 AndroidManifest 清單文件。


插件信息配置

id:相當(dāng)于安卓的包名
name:會顯示在Android studio插件列表

version:版本號
vendor:用戶信息
description:插件描述信息,這里要求字?jǐn)?shù)的,所以寫多點(diǎn),不然會一直報錯。

3、新建Action

先在src目錄,創(chuàng)建一個包,然后選擇包,右鍵新建一個Action,如下圖:



配置Action信息

Action ID:代表該Action的唯一id
Class Name:Action名字,類名啦
Name:這個會顯示在菜單項那個標(biāo)題
Description:描述

Groups:里面選擇ToolsMenu(Tools),意思就是在Tools那個菜單欄。
Anchor:右邊那個,選擇First,就是在菜單欄的第一個位置
Keyboard Shortcuts:設(shè)置快捷鍵,根據(jù)你需要的設(shè)置,不要和別人重復(fù)就好

4、完善邏輯功能

新建完,就開始寫代碼啦,代碼很簡單,直接在上面注釋了,看代碼吧:

public class Translate extends AnAction {

    @Override
    public void actionPerformed(AnActionEvent e) {
        //彈出一個輸入框,并獲取輸入框的內(nèi)容
        String text = Messages.showInputDialog("請輸入要翻譯的內(nèi)容", "提示", Messages.getQuestionIcon());
        if (text != null) {
            //網(wǎng)絡(luò)請求,這個接口是百度翻譯的,直接用
            HttpUtils.doGetAsyn("https://fanyi.baidu.com/transapi?from=auto&to=auto&query=" + text, new HttpUtils.CallBack() {
                public void onRequestComplete(String result) {
                    //請求成功后,用gson解析數(shù)據(jù)出來。
                    DataModel dataModel = new Gson().fromJson(result, DataModel.class);
                    //這個回調(diào)是線程里面的,所以要加個方法,不然會報錯
                    ApplicationManager.getApplication().invokeLater(new Runnable() {
                        @Override
                        public void run() {
                            //彈出翻譯結(jié)果對話框
                            if (dataModel.getData().size() > 0) {
                                Messages.showInputDialog(text + "===>", "翻譯結(jié)果", Messages.getInformationIcon(), dataModel.getData().get(0).getDst(), null);
                            }
                        }
                    });
                }
            });
        }
    }
}

那整個功能就完成啦,HttpUtils 類,是網(wǎng)上搜的。DataModel 類,是翻譯的請求結(jié)果,用gson解析的。
整個工程就這樣:


image.png
5、編譯運(yùn)行
image.png

完成了,就點(diǎn)擊右上角這個運(yùn)行符號,這個時候,他會重新打開一個IDEA界面,隨便新建一個項目,這個時候,Tools那里就會“翻譯插件”了。

6、插件打包

運(yùn)行沒問題后,就是打包了,然后給Android studio那邊使用。


image.png

點(diǎn)擊上面圖的選項,會在項目目錄生成一個 jar文件

7、在Android studio 安裝插件
image.png

打開設(shè)置,點(diǎn)擊 Install plugin from disk ,然后選擇剛剛打包出來的那個jar。確定后,重啟Android studio 就可以啦。

8、發(fā)布插件

如果想把這個插件發(fā)布給其他人用,參考下面這個地址:
http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/publishing_plugin.html

最后說幾句

看完這篇文章,有沒有想法做其他插件呢?有想法就干吧,邏輯想清楚,其他的就搜索去實(shí)現(xiàn)。
附上這個翻譯插件,你們可以下載安裝到Android studio 使用。
地址:Translate.jar

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 14,000評論 2 59
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,057評論 25 709
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    wgl0419閱讀 6,594評論 1 9
  • 今天孩子的一句話需要記錄下來:我不會不好好上學(xué)的,好好學(xué)習(xí)如果還是沒有好成績,那我也不會傻著去干體力活的,我可以把...
    淡淡悠悠閱讀 226評論 0 0
  • 項目范圍管理,包括為成功完成項目所需要的一系列過程,以確保項目包含且僅僅只包含項目所必須完成的工作。范圍管理首先要...
    文小夢閱讀 1,153評論 0 4

友情鏈接更多精彩內(nèi)容