天天看點

Android Studio 插件開發詳解三:翻譯插件實戰

在上面的兩篇文章,講解了插件開發的基礎,今天就來一個優點難度的項目,插件的名字叫 AndroidPluginTranslate , 顧名思義就是可以翻譯文案的插件,廢話不多說,先看最終效果圖:

Android Studio 插件開發詳解三:翻譯插件實戰

1、環境變量配置及軟體安裝,這裡省略,我在 Android Studio 插件開發詳解一:入門練手 說的很清楚。

2、建立項目 AndroidPluginTranslate ,如下圖所示:

Android Studio 插件開發詳解三:翻譯插件實戰

編碼實際上核心的一個類叫做AnAction,可以直接選擇NEW->Action,如下圖:

Android Studio 插件開發詳解三:翻譯插件實戰

然後填寫一些相關資訊

Android Studio 插件開發詳解三:翻譯插件實戰

需要填寫的屬性如下:

ActionID:代表該Action的唯一的ID,一般的格式為:pluginName.ID

ClassName:類名

Name:就是最終插件在菜單上的名稱

Description:對這個Action的描述資訊

然後往下,選擇這個Action即将存在的位置:

我們選擇的是EditMenu,右側選擇為first,即EditMenu下的第一個,效果如圖:

Android Studio 插件開發詳解三:翻譯插件實戰

建立好 TranslateAction 後,它的代碼很簡單,如下:

當我們點選菜單的時候,就回觸發actionPerformed()方法。

此外我們剛才填寫的資訊,也在plugin.xml中完成了注冊,大家可以進去看一眼,actions的标簽如下:

這裡大家一定要注意,要對 <code>&lt;id&gt;</code> 、<code>&lt;name&gt;</code> 、<code>&lt;version&gt;</code>、 <code>&lt;vendor&gt;</code>、 <code>&lt;description&gt;</code> 這幾個标簽要認真填寫,其中 <code>&lt;id&gt;</code> 是這個插件的 id ,一定不能和市場上的其他插件一樣;<code>&lt;description&gt;</code> 是描述這個插件的功能,盡可能的寫的詳細,否則在上架插件市場的的時候,會稽核不過,白白浪費時間。

那麼這麼看,我們在這個方法中隻要完成三件事:

獲得目前選中的單詞

調用相關API得到單詞的意思

通過一個類似于PopupWindow來顯示

###(2)建立工具類

在 Android Studio 插件開發詳解二:工具類 中介紹了三個工具類,分别是 http 工具類 HttpManager、json 解析工具類 JsonUtil 、日志列印工具類 Logger 。我們需要建立一個 util 包,然後把這三個類拷貝到我們的項目中。項目結構如下圖所示:

Android Studio 插件開發詳解三:翻譯插件實戰

有了這三個工具類就大大減輕了我們的開發任務。

是不是覺得API很陌生,恩,我也覺得很陌生,關于API這裡介紹其實沒什麼意義,本文主要目的是讓大家對自定義插件有個類helloworld的認識,至于插件裡面的代碼涉及到的API等到大家需要編寫插件的時候,再詳細學習就好了,現在就不要浪費精力記憶這些東西了。

上面的代碼就是獲得選中的文本,通過一個Editor,然後拿到SelectionModel,再拿到selectedText,從字面上還是蠻好了解的。

調用的 API 我們選擇有道雲的翻譯 API

家如果想要做單詞翻譯,可以看下,非常簡單, 不過這個API 現在是收費了,新注冊的使用者會有 100 元的體驗金。

接口的調用這裡不細說,官方有很詳細的說明,另外本例子會上傳至 Github , 還不清楚可以去我的Github 檢視。我們根據傳回的 json 字元串生成了一個類 TranslateBean;然後通過 Gson 轉化為TranslateBean對象。

好了,有了傳回的資料以後,直接通過一個類似popupWindow展現即可。

涉及到的代碼:

這個API,恩,我copy的源碼,依然是不求記住,知道這有個類似的功能即可。

簡單看一下,是通過建立一個JBPopupFactory,然後通過它建立一個HtmlTextBalloonBuilder,通過這個builder去設定各種參數,最後show。

ok,對于一個入門的例子,不要太強求對插件中這些API的掌握,還是那句話,等需要寫了再去查,需要什麼功能,哪怕到對應的插件中去copy源碼都可以,當然也有文檔:

有興趣的可以整理各種類型的插件,比如彈出popupWindow,生成代碼,生成檔案類别的,然後對相關的API進行收集與整理。

Build --&gt; Prepare Plugin Module… 生成插件。插件輸出為 xxx.jar 包 或者 xxx.zip 包。

Android Studio 插件開發詳解三:翻譯插件實戰

安裝插件,這裡就不講了,在 Android Studio 插件開發詳解一:入門練手 已經講的很清楚了。

把插件安裝在 Android Studio 後,重新開機 Android Studio ,就可以愉快的使用插件了

Android Studio 插件開發詳解三:翻譯插件實戰

插件上傳到市場在這裡就不講了,詳見 Android Studio 插件開發詳解一:入門練手

終于到了總結的環節,這麼長的文章其實編寫插件總結起來就幾句話。

下載下傳Intellij IDEA,建立一個Intellij IDEA plugin的項目

然後在裡面new Action以及編寫API

點選prepare plugin生成jar,這個jar就可以用來安裝了。

恩,就是這麼簡單,實踐起來會比較麻煩一點,等成功以後,回過頭來總結,發現步驟其實就那麼幾個步驟~~對于實際的Action相關的API,等你在編寫相關插件的時候,參考别的類似插件,檢視官方文檔都可以。

繼續閱讀