Re: [問題] 呼叫google translate翻譯
※ 引述《k11926 (ki)》之銘言:
: 開發層: (應用/框架/庫/核心)
: 問題:
: 上次解決了edittext鍵盤的問題後,持續我的進度,就是翻譯啦,想要做到的效果是,一
: 篇文章可以讓使用者選取文字(英文)後,可以進行翻譯的動作,用google translate可以
: 做到翻譯
: 但是沒有辦法直接選取完就可以顯示在webview裡面,一定要現選取文字,然後
: 長按(或是另外放一個button)選取的文字後,再按下webview中的文字呼叫,才有辦法
: 翻譯,不知道有沒有什麼比較好的翻譯方法呢?
: 希望是可以直接選取完文字以後,點選選取的範圍,就可以翻譯的功能
我的方法有兩種
第一種是透過瀏覽器連上google翻譯,
優點: 簡單,只需要寫出android程式即可 缺點: 很慢
第二種是自己用javascript透過google api寫一支翻譯程式
優點:速度快 缺點:必須學一下Javascript,
我試著寫第一種方法,結果真的很慢= =
程式碼(片段):
import com.google.api.translate.Language;//必須下載google translate的api
import com.google.api.translate.Translate;
...
editText = (EditText)findViewById(R.id.EditView01);
editText.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View view, MotionEvent motion) {
try{
String subSelectStr = "";
if(editText.getSelectionStart()<=editText.getSelectionEnd()){
subSelectStr = (editText.getText().
subSequence(editText.getSelectionStart(),
editText.getSelectionEnd())).toString();
}
else{
subSelectStr = (editText.getText().
subSequence(editText.getSelectionEnd(),
editText.getSelectionStart())).toString();
}
ClipboardManager clipboard =
(ClipboardManager)getSystemService(
Context.CLIPBOARD_SERVICE);
clipboard.setText(subSelectStr);
String pasteData = clipboard.getText().toString();
Translate.setHttpReferrer(
"/*Enter the URL of your site here*/");
String strTranslatedText = Translate.execute(pasteData,
Language.ENGLISH, Language.CHINESE_TRADITIONAL);
Toast.makeText(mContext, strTranslatedText,
Toast.LENGTH_SHORT).show();
}
catch(Exception e){
e.printStackTrace();
}
return false;
}
});
稍微解釋一下,
首先我宣告一個EditText來存放原po所說的文章,
為了方便示範,所以我就放了一個英文單字,apple作為初始的文章,
然後利用xml將editText的屬性設為editable=false,
當使用者長按editText的時候,選擇select text模式,
然後進行選取,當選完放開手指的時候,
就會把文字貼入Clipboard,然後再從Clipboard裡面取出,
丟去google translate線上查詢,
查完的結果會利用Toast顯示出來 。
如果一開始所說的,會非常慢,不知道是因為我網路問題,
還是真的會很慢,
還是建議利用第二種方法,寫一支javascript吧!
補上程式碼
http://uploadingit.com/file/whpf92ve9ean12ne/TestAndroidWebView.zip
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.115.4
推
07/18 17:18, , 1F
07/18 17:18, 1F
推
07/19 06:20, , 2F
07/19 06:20, 2F
→
07/19 06:22, , 3F
07/19 06:22, 3F
→
07/19 06:22, , 4F
07/19 06:22, 4F
※ 編輯: givemepass 來自: 61.221.115.4 (07/19 09:54)
推
07/19 11:02, , 5F
07/19 11:02, 5F
推
07/19 11:05, , 6F
07/19 11:05, 6F
→
07/19 11:49, , 7F
07/19 11:49, 7F
→
07/19 11:49, , 8F
07/19 11:49, 8F
推
07/19 13:53, , 9F
07/19 13:53, 9F
→
07/19 14:43, , 10F
07/19 14:43, 10F
→
07/19 14:43, , 11F
07/19 14:43, 11F
推
07/19 15:15, , 12F
07/19 15:15, 12F
→
07/19 15:16, , 13F
07/19 15:16, 13F
→
07/19 15:17, , 14F
07/19 15:17, 14F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章